LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: ravingboy

问一个很弱的问题啊~

[复制链接]
 楼主| 发表于 2003-9-21 18:07:15 | 显示全部楼层
问题是:
为什么在输入第一个数据的时候要有两次?
为什么输入第一个非数字数据的时候不能成功退出,要输第二次呢?
发表于 2003-9-21 18:59:25 | 显示全部楼层
程序总觉得怪怪的,有几个问题,改一下:
scanf("%s\n",&str);
scanf("%s",str);
去掉\n和&
qsort(&num,count+1,sizeof(int),comp);
qsort(&num,count,sizeof(int),comp);
去掉+1
if (!(char_to_check>'0' && char_to_check<'9'))
if (!(char_to_check>='0' && char_to_check<='9'))
加上两个=
发表于 2003-9-21 19:41:22 | 显示全部楼层
前几天刚好写了个用来接收数字字串的:

  1.         char buf[100], *p;         /* 缓冲区,用来保存接收到的数字字串 */
  2.       
  3.         printf ("Please input a number:");
  4.         fgets(buf, sizeof buf, stdin);      /* 接收一个数字字串 */
  5.         if((p = strchr(buf, '\n')) != NULL) /* 截去回车换行符 */
  6.              *p = '\0';
  7.         sscanf (buf, "%d", &num_1);         /* 把数字字串转成整数 */
  8.         printf ("You input : %d\n", num_1);
复制代码


不要使用 scanf 或 gets, 不然会碰到不少麻烦, fgets 和 sscanf 比较合适。
 楼主| 发表于 2003-9-22 09:17:10 | 显示全部楼层
最初由 libinary 发表
程序总觉得怪怪的,有几个问题,改一下:
scanf("%s\n",&str);
scanf("%s",str);
去掉\n和&
qsort(&num,count+1,sizeof(int),comp);
qsort(&num,count,sizeof(int),comp);
去掉+1
if (!(char_to_check>'0' && char_to_check<'9'))
if (!(char_to_check>='0' && char_to_check<='9'))
加上两个=



多谢libinary 老大~~~按照你的办法我的程序终于成功了~~~谢谢~我会一直支持你的~~:thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表