【发布时间】:2017-07-28 09:28:00
【问题描述】:
无法获得实际计数,但我没有看到我做错了什么。
我输入一个单词,按回车,然后什么也没有发生,它继续运行。
int main(void)
{
double nc;
for (nc = 0; getchar() != EOF; ++nc)
;
printf ("%.0f\n", nc);
}
【问题讨论】:
-
到底为什么要使用浮点数进行计数?
-
我并不是建议你尽快把那本书扔掉,但无论如何你可能应该这样做。浮点数是不精确的,永远不应该用于计数。使用整数。至于您的问题,您必须按 ^D 关闭输入。
-
您必须以 ENTER 后跟 ctrl-D 或两个 ctrl-d 的背靠背来结束输入。这类似于之前的问题。阅读那里的答案以了解一些背景。 stackoverflow.com/questions/27183865/getchar-eof
-
有人向我推荐了这本书,因为我以前从未编写过代码,我想从一些基本的东西开始
-
如果您希望代码在行的末尾停止,请检测
'\n'。int ch; for (nc = 0; ((ch = getchar()) != EOF && ch != '\n'); ++nc) ;