为什么运行输入了ctrl+z还是会打印eof和它的ascii码值
#include
int main(void) {
char ch;
int t = 0;
while ((ch = getchar()) != EOF) {
putchar(ch);
t++;
putchar('\n');
printf("%d\n", ch);
}
printf("%d\n", t);
}
你得先换行,然后再输入CTRL+Z,再换行才行
你现在CTRL+Z和前两个字符在同一行输入,在你按回车键之前,实际程序scanf还没开始工作呢
这样改,供参考:
#include<stdio.h>
int main(void) {
char ch;
int t = 0;
while ((ch = getchar()) != '\n') { //while ((ch = getchar()) != EOF)
putchar(ch);
t++;
putchar('\n');
printf("%d\n", ch);
}
printf("%d\n", t);
return 0;
}