我刚刚开始学习C,这可能是一个非常简单的问题,但你的帮助是非常感激的。我试图用这个代码来计算输入到控制台的字符数量,但是当我点击输入时,它只是给我一个空白的新行,就像printf
还没有工作。我哪里错了?控制台上没有输出
int c, number;
while((c = getchar()) != EOF){
++number;
}
printf("%d\n", number);
谢谢。
我刚刚开始学习C,这可能是一个非常简单的问题,但你的帮助是非常感激的。我试图用这个代码来计算输入到控制台的字符数量,但是当我点击输入时,它只是给我一个空白的新行,就像printf
还没有工作。我哪里错了?控制台上没有输出
int c, number;
while((c = getchar()) != EOF){
++number;
}
printf("%d\n", number);
谢谢。
当你敲回车时,程序会增加计数器,因为它会得到换行符,并等待更多输入。你必须养活程序的EOF与按Ctrl +d(LINUX,UNIX,Mac)或按Ctrl +ž,输入(Windows)中。
如果你在windows下,按Ctrl
+ Z
然后输入。如果在linux下,按Ctrl
+ D
。这将导致文件结束。
enter
是不是一个控制台它是EOF或者按Ctrl-Z(Windows)或按Ctrl-d(UNIX)
输入EOF后,您将得到错误的结果,因为您尚未初始化number
。你正在增加垃圾值。将其初始化为零。
int c, number = 0;
这样换行也将被计算在内。如果你想跳过它们,那么你需要在增加number
之前测试c
不等于'\n'
。
+1为初始化数字,我想知道为什么我得到一个非常奇怪的字符数:)谢谢 – 2012-01-18 16:01:49
非常好,非常感谢! – 2012-01-18 15:48:42