我目前正在运行此字符计数 .c,但除非我按下控制 D,否则不会达到 EOF,这非常烦人。
#include <stdio.h>
main () {
long nc;
nc = 0;
while (getchar() != EOF) {
++nc;
}
printf("%ld\n", nc);
}
最佳答案
您看到的是预期的行为。
当输入流结束时仅遇到EOF。你在做什么(我想)是按回车键。这并不表示 EOF,因为您可以在输入后输入更多内容。 Ctr+D 表示文件结束。
您可以做的是寻找 End Of Line。 而且您还需要查找 EOF,因为用户可以通过按 Ctr+D 来终止 (正如@DavidC.Rankin 所建议的那样)
这可以通过将 getchar() 与 '\n'
和 EOF 匹配来完成
int c
while ((c = getchar()) != '\n' && c != EOF) {
++nc;
}
希望这对您有所帮助。
关于c - EOF 在 Mac Xcode (C) 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44582022/