|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一段子程序求解释啊 (never give up)
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
868
人关注过本帖
标题:
一段子程序求解释啊 (never give up)
只看楼主
加入收藏
GUnever
等 级:
论坛游民
帖 子:59
专家分:25
注 册:2012-3-3
第
11
楼
收藏
得分:0
回复 9楼 TonyDeng
EOF相当于文件的结束标志 值为-1也就是说当检测到最后的—1的时候 结束了循环 但是书上的解释是 可以丢弃了-1这个值 到底怎么丢弃的?
2012-03-05 13:32
举报帖子
使用道具
赠送鲜花
GUnever
等 级:
论坛游民
帖 子:59
专家分:25
注 册:2012-3-3
第
12
楼
收藏
得分:0
回复 9楼 TonyDeng
EOF是文件的结束标志 为-1
接就是说当检测到最后输入的-1这个值的时候就停止循环 但是书上还说这种方法能剔除当前输入行的最后一个字符
怎么理解?
2012-03-05 13:37
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
13
楼
收藏
得分:0
getchar()是读数据出错时返回EOF(通常值为-1,但不是所有编译器都设置EOF=-1),正常的char应是unsigned char的,但getchar()是返回signed int的,设置EOF为负值只是希望指出读到了不可能出现的值,那么这个值必定是错误的。读到ch=EOF没有问题,你没有使用它,比如没有令x = ch,那么这个ch数据就丢弃了。
授人以渔,不授人以鱼。
2012-03-05 13:39
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
14
楼
收藏
得分:0
你这个书的解释也有点怪,如果在进入while()循环之前,输入缓冲区是没有数据的,那么程序就会因为getchar()而等待按键,看起来就像死循环。如果输入缓冲区中有数据,那么这个循环就会一直读下去,直到读到'\n'为止,这期间读到的所有东西都因为没有赋值操作而被丢弃——如果缓冲区后面还有数据,那么留给下一个getchar()读取。
到循环结束,ch是有值的,但你的代码不使用它,那么它也被丢弃。关键是你到底用它了没有!
[
本帖最后由 TonyDeng 于 2012-3-5 13:56 编辑
]
授人以渔,不授人以鱼。
2012-03-05 13:44
举报帖子
使用道具
赠送鲜花
chan_
来 自:武汉
等 级:
论坛游侠
帖 子:84
专家分:122
注 册:2012-2-29
第
15
楼
收藏
得分:0
理解中
2012-03-06 21:28
举报帖子
使用道具
赠送鲜花
15
2/2页
1
2
快速回复:
一段子程序求解释啊 (never give up)
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.029005 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved