我是这么认为的:
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读取了换行符
getchar能识别换行符
@鱼大鹿: 所以这就是答案啊