我正在使用NetBeans MinGW来编译简单的c程序(我是新手)。 我的问题是我有这个简单的代码
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int c,i=0;
while((c=getchar())!=EOF){
i++;
}
printf("%d",i);
return 0;
}
当我尝试结束这样的输入时:
你好^ Z [输入]
它没有这样做,我需要重新进入
^ Z [输入]
结束它。
我很感激你告诉我为什么会这样。
提前致谢
答案 0 :(得分:2)
默认情况下,C输入是面向行的。使用EOF字符结束一行(Windows上为^Z
,Unix上为^D
)结束该行(没有尾随换行符)但实际上并不表示文件结束;在下一次读取时,即在行的开头遇到文件条件结束时发出信号。
答案 1 :(得分:1)
就像控制台处理输入的方式
UNIX系统上的Ctrl-Z将是一个让你暂停进程的中断,所以我猜它是一个Windows控制台。
当您在字符后按Ctrl-Z时,它可能会将其视为“结束”,它本身就是Ctrl-Z。