#include<stdio.h>
main()
{
int c;
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
}
为什么这段代码导致无限循环。它来自D.Ritchie的书。
答案 0 :(得分:2)
导致无限循环,因为EOF
不是可以通过键盘输入的字符。
看看这个:EOF in Windows command prompt doesn't terminate input stream
答案 1 :(得分:0)
在阅读答案的最后部分后,在 Linux 中执行此代码;)
#include <stdio.h>
int main(void)
{
int c;
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
printf("\n %c %d \n",c,c);
return 0;
}
如果你想输入EOF
字符,你可以从键盘上点击 Ctrl + d
您可以在输出中看到引用字符EOF
的最后一行,其数值等于-1
作为备注EOF
是一个带有值-1
的符号常量,您可以在头文件stdio.h
中看到它的定义
#define EOF (-1)