| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1135 人关注过本帖, 1 人收藏
标题:while(scanf("%d",&n)!=EOR);
只看楼主 加入收藏
ODmini
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-8-27
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:15 
while(scanf("%d",&n)!=EOR);
求大神解释一下这条语句,希望能详细点!谢谢!
2014-10-30 11:38
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:4 
应该是EOF吧
就是当输入整形值错误时(非法输入时,比如你输了一个回车),scanf会判断为eof,即end of file,就结束从输入流中读数
2014-10-30 11:55
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:4 
当你想结束输入时即可以输入EOF但记住这里EOF为centrl z

一片落叶掉进了回忆的流年。
2014-10-30 19:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
这是错误的代码,永远不可能执行成功,不需要解释。

授人以渔,不授人以鱼。
2014-10-30 19:03
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:4 
EOR是神马东东???

2014-10-30 19:16
ODmini
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-8-27
收藏
得分:0 
回复 5 楼 lwei
EOR 失误写错了
2014-10-30 19:53
ODmini
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-8-27
收藏
得分:0 
回复 5 楼 lwei
应该是EOF
2014-10-30 19:54
ODmini
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-8-27
收藏
得分:0 
回复 4 楼 TonyDeng
大神  失误写错了 应该是EOF
2014-10-30 19:54
ODmini
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-8-27
收藏
得分:0 
回复 2 楼 soulmate1023
你的意思是scanf()中的%d控制着输入的格式?然后只能输入数字,如果不是数字就会出现错误?   如果用户输入的是数字的话  就可以一直输入?
2014-10-30 19:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
scanf()函数的机制,仅在输入流设备出现了硬件故障或超越边界时(后者本质上也是硬件错误)返回EOF。scanf()被重定向到标准输入设备stdin(即控制台键盘),一般来说是极少出错的,所以为了要让scanf()函数返回EOF,就必须人为地制造错误:对不同的操作系统,约定stdin出错的方式不同,在Windows中,通过在输入数据中置入ASCII-26来标识错误,以按键Ctrl+Z或F6来输入这个数据,这样当scanf()读到这个字符时,才会返回EOF。如果你不知道怎么键入ASCII-26,那么这个程序就会死循环。

授人以渔,不授人以鱼。
2014-10-30 20:08
快速回复:while(scanf("%d",&n)!=EOR);
数据加载中...
 
   



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

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