免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach
打印 上一主题 下一主题

(修正版,欢迎指正)【原创】getchar()和EOF总结 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-08-24 16:32 |只看该作者
getchar()的返回应定义为INT. 而不是char

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
12 [报告]
发表于 2007-08-24 16:42 |只看该作者
原帖由 思一克 于 2007-8-24 16:32 发表
getchar()的返回应定义为INT. 而不是char


看高手过招,学习了。

版主说得对,getchar的定义是:int getchar(void), 应该返回int.

论坛徽章:
0
13 [报告]
发表于 2007-08-24 17:01 |只看该作者

有理

有理

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
14 [报告]
发表于 2007-08-24 17:04 |只看该作者
原帖由 思一克 于 2007-8-24 16:30 发表
是tty buffer的作用。
getchar()还是按字节读的。也就是说你输入ABCDEFG\n
那么getchar()一共被调用了8次,putchar()也是8次。


想起来了,再看C专家编程的时候,作者曾经在第8章中8.6节提到,如何不需要按回车键就能得到一个字符中,曾给出了一个例程,就是如何实现用getchar一次得到一个字符。
马上修改一下帖子,呵呵。

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
15 [报告]
发表于 2007-08-24 17:18 |只看该作者

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
16 [报告]
发表于 2007-08-24 17:36 |只看该作者
原帖由 ivhb 于 2007-8-24 15:39 发表
关于按下CTRL+D部分(EOF总结部分),应该归于终端设置吧。比如,对于当前输入的buffer里
非换行字符,则需要按下两次。第一次,是刷新,第二次是设置结束标志。这个应该说,更多就是一个终端属性设定。试想, ...


已经进行了修正!:wink: :wink:

论坛徽章:
0
17 [报告]
发表于 2007-08-24 17:45 |只看该作者
鼓励

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
18 [报告]
发表于 2007-08-24 17:48 |只看该作者
原帖由 思一克 于 2007-8-24 17:45 发表
鼓励


呵呵,多谢版主。
很多问题的发现和解决都得益于各位热心的网友。

论坛徽章:
0
19 [报告]
发表于 2007-08-24 19:54 |只看该作者
长期忽略了这些细节,今天感觉受益匪浅啊

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
20 [报告]
发表于 2007-08-25 18:12 |只看该作者
原帖由 stormgenius 于 2007-8-24 19:54 发表
长期忽略了这些细节,今天感觉受益匪浅啊


是阿,很多方面的知识如果深究起来的话,才会发现自己的理解还是不够全面。有了交流,提高的就很快。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP