首页 > 关于C语言中的getchar函数

关于C语言中的getchar函数

不明白为什么输出结果是8,而不是4

代码来自《the c programming language》


换行符也是一个字符啊
\n != EOF


getchar() 会捕获换行符 \n 作为一个输入
可以这样来用计算一行字符数

while(getchar() != '\n') 

或者跳过\n 不计算它

while((c=getchar()) != EOF && c != '\n')

大家的答案都是没有问题的。答主,其实你应该仔细观察一下你使用getchar()函数接收的具体的内容。
程序可以修改如下:

c  1 #include<stdio.h>
  2 
  3 int main(){
  4         long nc;
  5         int displayContent = 0;
  6         nc = 0;
  7 
  8         while ((displayContent = getchar()) != EOF) {
  9                 printf("%d\n", displayContent);
 10                 ++nc;
 11         }
 12 
 13         printf("%ld\n", nc);
 14 
 15         return 0;
 16 }

你能更加直观看到结果。


你的输入可以理解为:c\na\n1\nc\nEOF,其中\n代表换行符,EOF代表文件结尾符(值一般为-1)。你可以数一数,EOF之前是不是8个字符呢?

【热门文章】
【热门文章】