|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ getchar()在 while 循环中多显示一次
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
895
人关注过本帖
标题:
getchar()在 while 循环中多显示一次
只看楼主
加入收藏
aneeg
等 级:
新手上路
帖 子:75
专家分:8
注 册:2014-4-10
结帖率:
86.67%
楼主
收藏
已结贴
√
问题点数:6 回复次数:18
getchar()在 while 循环中多显示一次
#include<stdio.h>
int main(void)
{
while(getchar()!=EOF)
printf("中华人民共和国\n");
return 0;
}
输入一个字母,再按回车键为什么却出来两行。比如:
n
中华人民共和国
中华人民共和国
搜索更多相关主题的帖子:
字母
中华
共和国
return
2014-04-21 16:25
举报帖子
使用道具
赠送鲜花
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
2
楼
收藏
得分:3
2次循环
比如你输入ABCD回车 应该是5行吧
DO IT YOURSELF !
2014-04-21 16:30
举报帖子
使用道具
赠送鲜花
aneeg
等 级:
新手上路
帖 子:75
专家分:8
注 册:2014-4-10
第
3
楼
收藏
得分:0
回复 2 楼 wp231957
回车也算啊,
2014-04-21 16:33
举报帖子
使用道具
赠送鲜花
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
4
楼
收藏
得分:0
回复 3 楼 aneeg
当然了
有些人喜欢用getchar来吸收回车键的
DO IT YOURSELF !
2014-04-21 16:34
举报帖子
使用道具
赠送鲜花
aneeg
等 级:
新手上路
帖 子:75
专家分:8
注 册:2014-4-10
第
5
楼
收藏
得分:0
回复 4 楼 wp231957
如果我不想把回车算进去,又不结束循环,怎么写?吸收回车什么意思
2014-04-21 16:41
举报帖子
使用道具
赠送鲜花
wp231957
来 自:神界
等 级:
贵宾
威 望:
423
帖 子:13688
专家分:53332
注 册:2012-10-18
第
6
楼
收藏
得分:0
以下是引用
aneeg
在2014-4-21 16:41:58的发言:
如果我不想把回车算进去,又不结束循环,怎么写?吸收回车什么意思
那要看你想干吗
一楼的代码没啥实际意义
DO IT YOURSELF !
2014-04-21 16:48
举报帖子
使用道具
赠送鲜花
Andrew_Lee
等 级:
黑侠
威 望:
3
帖 子:185
专家分:626
注 册:2014-3-21
第
7
楼
收藏
得分:3
那你直接按回车就每次输出一个了。
2014-04-21 16:54
举报帖子
使用道具
赠送鲜花
aneeg
等 级:
新手上路
帖 子:75
专家分:8
注 册:2014-4-10
第
8
楼
收藏
得分:0
回复 6 楼 wp231957
#include<stdio.h>
int main(void)
{
while(getchar()!='eof'){
printf("中华人民和国\n") ;
while(getchar()!='\n')
break;
}
return 0;
}
修改下代码,显示还是有问题,输入3个字母,显示两行,输入5个字母显示3行,字母越多,差得越多
2014-04-21 23:50
举报帖子
使用道具
赠送鲜花
vvvcuu
等 级:
贵宾
威 望:
12
帖 子:353
专家分:1253
注 册:2014-4-22
第
9
楼
收藏
得分:0
getchar()函数每次只接收一个字符.
另外EOF和"\n"并不是同一个符号,也并不表示同一个意义.
getchar()把'\n'一样视为一个字符而不是EOF.
对于一开始贴出的代码:
#include<stdio.h>
int main(void)
{
while(getchar()!=EOF)
printf("中华人民共和国\n");
return 0;
}
把EOF改成'\n'就可以实现楼主的想要的功能了.
代码测试环境: WinXP+C-Free5.0.
2014-04-22 10:00
举报帖子
使用道具
赠送鲜花
aneeg
等 级:
新手上路
帖 子:75
专家分:8
注 册:2014-4-10
第
10
楼
收藏
得分:0
回复 9 楼 vvvcuu
我当然知道EOF和"\n"不是同一个字符,这结果不是我想要的
2014-04-22 18:53
举报帖子
使用道具
赠送鲜花
19
1/2页
1
2
快速回复:
getchar()在 while 循环中多显示一次
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024203 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved