标题:getchar()在 while 循环中多显示一次
取消只看楼主
aneeg
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
结帖率:86.67%
已结贴  问题点数:6 回复次数:4 
getchar()在 while 循环中多显示一次
#include<stdio.h>
int main(void)
{
    while(getchar()!=EOF)
    printf("中华人民共和国\n");
    return 0;
}
输入一个字母,再按回车键为什么却出来两行。比如:
n
中华人民共和国
中华人民共和国
搜索更多相关主题的帖子: 字母 中华 共和国 return 
2014-04-21 16:25
aneeg
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
得分:0 
回复 2 楼 wp231957
回车也算啊,
2014-04-21 16:33
aneeg
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
得分:0 
回复 4 楼 wp231957
如果我不想把回车算进去,又不结束循环,怎么写?吸收回车什么意思
2014-04-21 16:41
aneeg
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
得分: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
aneeg
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
得分:0 
回复 9 楼 vvvcuu
我当然知道EOF和"\n"不是同一个字符,这结果不是我想要的
2014-04-22 18:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-430410-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.453569 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved