搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ while(scanf("%d",&n)!=EOR);
标题:
while(scanf("%d",&n)!=EOR);
只看楼主
ODmini
等 级:
新手上路
帖 子:25
专家分:0
注 册:2014-8-27
第
11
楼
得分:0
回复 10 楼 TonyDeng
额 你自己写的?还是在哪看的资料?写的真棒!
2014-10-30 20:11
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
12
楼
得分:0
当然是我自己写的。你可以在网上找到如何做的资料,但绝少找得到为什么要这样做的解释,因为很多人都是知其然而不知其所以然。
授人以渔,不授人以鱼。
2014-10-30 20:17
soulmate1023
等 级:
蝙蝠侠
威 望:
6
帖 子:256
专家分:831
注 册:2014-9-23
第
13
楼
得分:0
回复 9 楼 ODmini
这个%d意思让你输入一个整形,如果scanf函数没有读到这个整形,就会在本次流的读取中失败,再从流中接着找符合%d的数字,但是你这了的EOF需要你自己键入ctrl+z或者F6+回车;
其实我之前我对这个问题很纠结,也差了很多资料,但是通过编的代码多了之后,发现其实用到这里的并不多,而且如果你真要开发什么,这样的程序代码肯定是不规范的,站在一个高的层次上看这个问题,便于你把注意力集中在更重要的问题上,而不是这些小问题,我也是菜鸟级的,这是我的一点想法,仅供参考
2014-10-30 20:18
ODmini
等 级:
新手上路
帖 子:25
专家分:0
注 册:2014-8-27
第
14
楼
得分:0
回复 12 楼 TonyDeng
恩恩 谢谢了
2014-10-30 20:50
beyondyf
等 级:
贵宾
威 望:
103
帖 子:3282
专家分:12654
注 册:2008-1-21
第
15
楼
得分: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
徐学贵
等 级:
论坛游民
帖 子:14
专家分:14
注 册:2014-11-3
第
16
楼
得分:0
好好学习天天向上
2014-11-03 15:46
16
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-437881-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.737916 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved