| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1135 人关注过本帖, 1 人收藏
标题:while(scanf("%d",&n)!=EOR);
只看楼主 加入收藏
ODmini
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-8-27
收藏
得分:0 
回复 10 楼 TonyDeng
  你自己写的?还是在哪看的资料?写的真棒!
2014-10-30 20:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
当然是我自己写的。你可以在网上找到如何做的资料,但绝少找得到为什么要这样做的解释,因为很多人都是知其然而不知其所以然。

授人以渔,不授人以鱼。
2014-10-30 20:17
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
回复 9 楼 ODmini
这个%d意思让你输入一个整形,如果scanf函数没有读到这个整形,就会在本次流的读取中失败,再从流中接着找符合%d的数字,但是你这了的EOF需要你自己键入ctrl+z或者F6+回车;
其实我之前我对这个问题很纠结,也差了很多资料,但是通过编的代码多了之后,发现其实用到这里的并不多,而且如果你真要开发什么,这样的程序代码肯定是不规范的,站在一个高的层次上看这个问题,便于你把注意力集中在更重要的问题上,而不是这些小问题,我也是菜鸟级的,这是我的一点想法,仅供参考
2014-10-30 20:18
ODmini
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-8-27
收藏
得分:0 
回复 12 楼 TonyDeng
恩恩  谢谢了
2014-10-30 20:50
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:4 
回复 10 楼 TonyDeng
以下是引用TonyDeng在2014-10-30 20:08:20的发言:

scanf()函数的机制,仅在输入流设备出现了硬件故障或超越边界时(后者本质上也是硬件错误)返回EOF。scanf()被重定向到标准输入设备stdin(即控制台键盘),一般来说是极少出错的,所以为了要让scanf()函数返回EOF,就必须人为地制造错误:对不同的操作系统,约定stdin出错的方式不同,在Windows中,通过在输入数据中置入ASCII-26来标识错误,以按键Ctrl+Z或F6来输入这个数据,这样当scanf()读到这个字符时,才会返回EOF。如果你不知道怎么键入ASCII-26,那么这个程序就会死循环。


唉~你这么胡说八道你家人造吗?你这么忽悠小朋友良心可安吗?

点了三个句号,却没一句是对的。我都不好意思给你解释了,自己查查资料吧。

重剑无锋,大巧不工
2014-10-31 18:31
徐学贵
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2014-11-3
收藏
得分:0 
好好学习天天向上
2014-11-03 15:46
快速回复:while(scanf("%d",&n)!=EOR);
数据加载中...
 
   



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

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