getchar(),putchar(char),EOF

时间:2017-11-15 04:46:50

标签: eof getchar putchar

#include<stdio.h>
int main(){
   int c = getchar();
   while(c != EOF){
      putchar(c);
      c = getchar();
   }
}

在上面的代码中,为什么程序在c变为EOF后程序自动终止? 参考代码&gt;书:K&amp; R&C的C编程语言第2版, 第18页

1 个答案:

答案 0 :(得分:0)

仅当到达文件末尾时,

getchar()才会返回EOF。这里的'文件'是标准输入本身。 这可以写成:

#include <stdio.h>
   int main()
  {
   int c;
   while ((c = getchar()) != EOF)
    {
     /*getchar() returns the the next available value which is in the input
     buffer*/    
     putchar(c);
    }
  }