谁能进来解释一下
#include <stdio.h>
int main(){
int c;
while ((c=getchar())!=EOF)
{ putchar(c);}
return 0;
}为什么总是循环?怎么才能不让它循环?EOF是什么?
#include <stdio.h>
int main(){
int c;
while ((c=getchar())==EOF)
{ putchar(c);}
return 0;
}为什么敲一个回车就退出循环了?
书上说EOF是个整数.这样的代码可以把EOF值打印出来吗?
if ((c=getchar())==EOF)
printf( "%f ",c);
[解决办法]
EOF=-1
输入EOF用CTRL+Z
另外,你的程序:
if ((c=getchar())==EOF)
printf( "%f ",c);
c是一个char,用%f来输出,大概会出问题吧。
要知道EOF,可以 printf( "EOF=%d\n ",EOF);
会输出-1的
[解决办法]
是因为getchar只有在有回车之后才开始检测字符,可以说是“缓冲”输入问题,但是说是console 输入似乎更合理。缓冲也不必要等回车啊:)
[解决办法]
getch是不带缓冲的输入 getchar是带缓冲的输入