文件结束F EOF

来源:百度知道 编辑:UC知道 时间:2024/06/11 02:01:24
#include <stdio.h>
main()
{int c;
while((c=getchar())!=EOF)
putchar(c);
}
上面这个程序当输入什么的时候会不打印输入的字符?
printf("%d",EOF); EOF不是等于-1吗?
我为什么输入 jb-1或者-1的时候他仍然打印?
vc++6.0测试的 你的意思是他在计算机内部是 以 ASIIC M比较的是吗? 输入哪个数的时候他会不打印?

EOF的确是-1
但是,你在控制台输入-1的时候,实际是输入了'-'和'1'两个字符,也就是没有得到-1,而且ascii也没有-1 标准ascii是重0-255的,不会得到-1.
所以程序没办法退出打印.

试试这样:按住Alt不放,依次输入小键盘的数字255,放开Alt
(这样做是输入一个ASCII值为255即,-1的补码(11111111))

getchar
获取的是字符
输入1 1的ASC码是多少 你自己看看