免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3514 | 回复: 7
打印 上一主题 下一主题

getchar函数问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-24 16:30 |只看该作者 |倒序浏览
请教getchar函数的结束问题
如果我想声明一个char变量 c,然后用getchar对c进行赋值,怎么让这个函数遇到回车符的或者换行符的时候结束

char c;
while((c=getchar())!=EOF && c!='\n')
printf("%c",c);

这样写为什么需要ctrl+c来结束循环语句?

论坛徽章:
0
2 [报告]
发表于 2011-11-24 18:29 |只看该作者
你这段代码中包含了一个经典的bug, K&R的书中有所提及。
char c; 应该改成int c;

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
3 [报告]
发表于 2011-11-24 19:38 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2011-11-24 20:41 |只看该作者
回复 2# digdeep126


    请问改为int c的话,如果我要把这个c保存到一个字符数组,是否需要再进行类型转换?

论坛徽章:
0
5 [报告]
发表于 2011-11-24 20:42 |只看该作者
回复 3# pmerofc


    我在我的机器上执行是就是需要ctrl+c来强制结束这个循环

论坛徽章:
0
6 [报告]
发表于 2011-11-24 20:45 |只看该作者
改为int c;还是同样的问题啊

论坛徽章:
0
7 [报告]
发表于 2011-11-24 20:52 |只看该作者
1. 请问改为int c的话,如果我要把这个c保存到一个字符数组,是否需要再进行类型转换?
  》 需要转换,但是它是自动的。因为 char 在某种程度上也是整形的。而且这个转换很自然。
2 . 改为int c;还是同样的问题啊
  》你给出的代码,肯定不需要ctrl+c来强制结束这个循环,有可能是你给出的代码和你运行的代码不一致。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
8 [报告]
发表于 2011-11-24 21:19 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP