| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 895 人关注过本帖
标题:getchar()在 while 循环中多显示一次
只看楼主 加入收藏
aneeg
Rank: 1
等 级:新手上路
帖 子: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
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
2次循环  比如你输入ABCD回车 应该是5行吧

DO IT YOURSELF !
2014-04-21 16:30
aneeg
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
收藏
得分:0 
回复 2 楼 wp231957
回车也算啊,
2014-04-21 16:33
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 3 楼 aneeg
当然了  有些人喜欢用getchar来吸收回车键的

DO IT YOURSELF !
2014-04-21 16:34
aneeg
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
收藏
得分:0 
回复 4 楼 wp231957
如果我不想把回车算进去,又不结束循环,怎么写?吸收回车什么意思
2014-04-21 16:41
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用aneeg在2014-4-21 16:41:58的发言:

如果我不想把回车算进去,又不结束循环,怎么写?吸收回车什么意思

那要看你想干吗  一楼的代码没啥实际意义

DO IT YOURSELF !
2014-04-21 16:48
Andrew_Lee
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:185
专家分:626
注 册:2014-3-21
收藏
得分:3 
那你直接按回车就每次输出一个了。
2014-04-21 16:54
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
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
收藏
得分: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
Rank: 1
等 级:新手上路
帖 子:75
专家分:8
注 册:2014-4-10
收藏
得分:0 
回复 9 楼 vvvcuu
我当然知道EOF和"\n"不是同一个字符,这结果不是我想要的
2014-04-22 18:53
快速回复:getchar()在 while 循环中多显示一次
数据加载中...
 
   



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

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