gpt4 book ai didi

c - 当我按 Enter 时,从控制台读取不会停止

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:10 24 4
gpt4 key购买 nike

我正在阅读 PrenticeHall。 The C Programming Language - 第 2 Ed.Kernighan,Ritchie。

在这本书(pg-20)中给出了一个程序示例,它应该打印用户在控制台窗口中键入的字符数,这是它的代码。

#include <stdio.h>

main()
{
double nc;
for (nc = 0; getchar() != EOF; ++nc)
;

printf("%.0f\n", nc);
}

但是当我运行它并在控制台中输入一些内容时,它根本不会打印任何内容,光标会一直闪烁。这正是那本书中编写代码的方式。

我也试过另一种方法,但这也没有成功,结果与之前的代码相同。

#include <stdio.h>

main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;

printf("%ld\n", nc);
}

关于如何使这个东西起作用的任何想法?

附言我正在使用 Windows 操作系统。 (仍然)

最佳答案

原因是代码尝试读取所有输入,直到文件末尾。如果这个程序是从一个文件中读取,它会知道它什么时候结束,但是因为它是从控制台读取的,所以你必须明确地告诉它输入已经结束。在 Linux 上,您可以按 ^D (Ctrl+D),在 Windows 上按 ^Z (Ctrl+Z)。

请注意,它必须在新行的开头完成,即在按 Enter 后,您按 ^D (^Z 在 Win 上)。

I am reading PrenticeHall. The Ansi C Programming Language - 2nd Ed.Kernighan,Ritchie.

您正在阅读的这本书非常好。我想这很好,它包含了您问题的答案。

关于c - 当我按 Enter 时,从控制台读取不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com