| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1763 人关注过本帖
标题:新手请教,关于使用scanf返回值的几点问题
取消只看楼主 加入收藏
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
新手请教,关于使用scanf返回值的几点问题
本人想做一个scanf输入检查,输入的为4位整数(例如先锁定号码为8987),代码大致如下:
int a = 0;
scanf ("%d",&a);
while (a != 8987){
    printf("输入有误,请重新输入:");
    scanf("%d",&a);
}
printf("pass");

但问题来了,当我输入字符的时候,竟然while死循环了,不断打印printf而scanf却不起效。
第二点,如果我想让代码检查输入的一定为整数(不能为字符),并且必须为8987,我的代码该怎么改?
第三点,本人尝试返回scanf的返回值,当没接收则0,有接收一个数据则1,而我的疑问是EOF的情况是如何发生,并且可否打印屏幕显示出来?
请各位指教。
搜索更多相关主题的帖子: 如何 
2015-03-03 11:17
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:0 
回复 2楼 TonyDeng
谢谢指教,例子的用法都是学网上的,以我的做法可能这样做 while (scanf("%d",&a) == 1),但还弄不明白while (scanf("%d",&a) != EOF)里面EOF的含义, (当然按照你说的这样做是不对的要避免)以至于我尝试printf它的原因,但结果是0,1。

2015-03-03 12:32
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:0 
回复 5楼 TonyDeng
资料看完后大致清楚,谢谢你的帮助。
2015-03-03 13:14
kin3z
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:157
专家分:390
注 册:2011-4-24
收藏
得分:0 
回复 6楼 TonyDeng
学习了,但因本人自学中,在学习资料里或在复习习题中都经常用到输入输出去讲解与编程,此次问题也为其中一题的内容,只不过并无要求太高程序的健壮性(例如输入的类型要求)
2015-03-03 13:19
快速回复:新手请教,关于使用scanf返回值的几点问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015879 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved