搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ SOS , C???????????
标题:
SOS , C???????????
只看楼主
灭国者
等 级:
新手上路
帖 子:6
专家分:0
注 册:2010-6-15
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:5
SOS , C???????????
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int op = 1;
6
7 do {
8 fscanf(stdin,"%d",&op); //如果输入的是整数正常,非整数死循环。???
9 fprintf(stdout,"SOS\n");
10 }while(op != 0);
11
12 return 0;
13 }
~
~
搜索更多相关主题的帖子:
SOS
2010-06-20 16:26
xiaomanaruto
等 级:
侠之大者
帖 子:79
专家分:443
注 册:2010-4-1
第
2
楼
得分:20
你定义的op不是整形的吗?
当你输入的数据和你定义的变量类型不一致的话会自动转换的,也就意味着会舍去浮点型数据的小数部分,可能是你输入的数在舍去后刚好为0了。
2010-06-20 16:47
forever74
来 自:CC
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册:2007-12-27
第
3
楼
得分:0
你写的语句只能正确处理整数,你就不应该试图输入其它东西。
就好像人只能靠吸收氧气活着,要是进入个无氧的环境,当然就朝死了循环了。
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-06-20 18:48
灭国者
等 级:
新手上路
帖 子:6
专家分:0
注 册:2010-6-15
第
4
楼
得分:0
楼上的太幽默了,遇到问题就要想办法如何解决,而不是去寻找解决不了的理由。
1 答案:
3 int main(void)
4 {
5 int op = 1,n = 0;
6
7 do {
8 n = fscanf(stdin,"%d",&op); //当fscanf失败时返回0
if( !n) while( getchar() != '\n' ); //将流中的非法字符输出
9 fprintf(stdout,"SOS\n");
10 }while(op != 0);
11
12 return 0;
13 }
2010-06-20 21:59
forever74
来 自:CC
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册:2007-12-27
第
5
楼
得分:0
我可一点也没打算幽默。
通读LZ您的1楼帖子,唯一带问号的地方就是在问为什么不输入整数的话程序就会死循环。
我的解释意思是告诉您scanf系列函数的局限性摆在那里,要使用它您就不得不迁就它。
瞧,您的问题并不包括怎样解决问题,可能您下意识地认为您自己的意思是想要解决问题,可是您没有这样表达。
而我的习惯是针对人家的问题来回答,不要回答人家没问的东西,于是误会就这样产生了~~~555
BTW:如果您真的打算应付用户的任意输入,那您应该做的是使用fgets之类的来接收字符串输入,然后写代码确认输入的合法性,如果合法再转换为适当的类型,如果不合法就提示用户。
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-06-21 10:27
广陵绝唱
等 级:
贵宾
威 望:
29
帖 子:3607
专家分:1709
注 册:2008-2-15
第
6
楼
得分:0
以下是引用
forever74
在2010-6-21 10:27:03的发言:
我可一点也没打算幽默。
通读LZ您的1楼帖子,唯一带问号的地方就是在问为什么不输入整数的话程序就会死循环。
我的解释意思是告诉您scanf系列函数的局限性摆在那里,要使用它您就不得不迁就它。
瞧,您的问题并不包括怎样解决问题,可能您下意识地认为您自己的意思是想要解决问题,可是您没有这样表达。
而我的习惯是针对人家的问题来回答,不要回答人家没问的东西,于是误会就这样产生了~~~555
BTW:如果您真的打算应付用户的任意输入,那您应该做的是使用fgets之类的来接收字符串输入,然后写代码确认输入的合法性,如果合法再转换为适当的类型,如果不合法就提示用户。
《 大卫.考波菲尔》 中的 威克菲尔 先生做事只看动机,而且相信每人做事只有一个动机。您回答问题只回答一个问题。(没有其他意思,只是觉得有些类似)。
2010-06-21 12:48
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-310717-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.091250 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved