首页 新闻 会员 周边 捐助

为什么选择输入getchar时,会输出两遍?

0
悬赏园豆:5 [待解决问题]

选择cin就会输出一遍?

鱼大鹿的主页 鱼大鹿 | 初学一级 | 园豆:199
提问于:2021-01-02 23:57
< >
分享
所有回答(1)
2

我是这么认为的:

1. getchar()结束的标志是文件末尾EOF
2. 你的输入包含内容+回车
3. 当你按下回车的时候,getchar开始读取,getchar会把回车符读取
4. 也就意味着,你输入长度为n的字符串,将会循环n+1次,因为始终有一次回车
5. 你输入了2或者5,都是长度为1的字符串,所以加上回车之后,总共输出了2次
6. 你可以尝试

char a;
while(1)
{
    a=getchar();
    cout<<a;
}

光标永远会出现再下一行,但是程序却没有cout<<endl; 因为getchar读取了换行符

Conan-jine | 园豆:1272 (小虾三级) | 2021-01-03 02:29

getchar能识别换行符

支持(0) 反对(0) 鱼大鹿 | 园豆:199 (初学一级) | 2021-01-12 23:37

@鱼大鹿: 所以这就是答案啊

支持(0) 反对(0) Conan-jine | 园豆:1272 (小虾三级) | 2021-01-28 00:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册