我正在研究Stephen Prata的“ C Primer Plus”中的练习,并有一个问题。清单8.1:
/* echo.c -- echoes input */
#include <stdio.h>
int main(void)
{
char ch;
while ((ch = getchar()) != '#')
putchar(ch);
// while ((ch = getchar()) != '.')
// putchar(ch);
return 0;
}
原始代码不包含注释;我添加了它们,它们是我的问题。如果我取消注释这些行,则对输出没有明显的影响。它仍以#
符号结尾,而不打印它。没有显示其他文本,我返回到命令提示符。
那是为什么?另外,#
是否会消耗getchar()
?这就是为什么我包含第二个循环的原因-出于好奇,我试图显示缓冲区中的所有剩余字符。显然,我不知道自己在做什么!