|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ SOS , C???????????
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
623
人关注过本帖
标题:
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
等 级:
版主
威 望:
58
帖 子:1697
专家分:4305
注 册: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
等 级:
版主
威 望:
58
帖 子:1697
专家分:4305
注 册: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
快速回复:
SOS , C???????????
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.039997 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved