gpt4 book ai didi

c - while ((c = getchar()) != EOF) 不终止

转载 作者:太空狗 更新时间:2023-10-29 14:53:21 25 4
gpt4 key购买 nike

我一直在阅读“The C Programming Language”,并且了解了输入和输出的这一部分。

我读过其他帖子说控制台无法将输入识别为 EOF。所以我应该在 Windows 中使用 CTRL + Z 或在 Unix 中使用 CTRL + D (这些都不起作用对我来说)。

我也看到其他人问同样的问题说他们可以让它工作,他们代码中的问题是语法而不是程序没有终止。

还有其他解决方案吗?

这是代码:

#include <stdio.h>

main()
{
int nb, nl, nt, c;
nb = 0;
nl = 0;
nt = 0;
while ((c = getchar()) != '\n') {
if (c == ' ')
++nb;
else if (c == '\n')
++nl;
else if (c == '\t')
++nt;
}
printf("Input has %d blanks, %d tabs, and %d newlines\n", nb, nt, nl);
}

编辑:\n 应该是一个 EOF,我在发帖前胡思乱想,忘记更改它了 :P

它对 EOF 也不起作用,我只是跳过了那个。

最佳答案

while ((c = getchar())  !=EOF) {


}

然后在 Windows 上使用 Ctrl+ZF6

以下将等待 \nEOF,哪个先出现

while((c = getchar()) != '\n' && c != EOF){

}

关于c - while ((c = getchar()) != EOF) 不终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565663/

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