我刚刚开始学习C,这对你们来说可能是一个非常简单的问题但是你的帮助非常感谢。我正在尝试使用此代码来计算输入控制台的字符数,但是当我点击输入时,它只给我一个空白的新行,就像printf
没有用。我哪里错了?
int c, number;
while((c = getchar()) != EOF){
++number;
}
printf("%d\n", number);
感谢。
答案 0 :(得分:6)
当您按Enter键时,程序会递增计数器,因为它会获取换行符并等待更多输入。您必须使用 Ctrl + D (Linux,Unix,Mac)或 Ctrl + Z ,输入(Windows)。
答案 1 :(得分:1)
输入EOF后,由于您尚未初始化number
,因此会得到错误的结果。你正在增加垃圾值。将其初始化为零。
int c, number = 0;
这样也会计算换行符。如果您想跳过它们,则需要在递增c
之前测试'\n'
不等于number
。
答案 2 :(得分:0)
如果您在Windows下,请按Ctrl
+ Z
,然后输入。如果在linux下,请按Ctrl
+ D
。这将导致文件结束。
答案 3 :(得分:0)
enter
在控制台上不是EOF,它是ctrl-Z(windows)或ctrl-D(unix)