c - 无法识别 EOF

标签 c windows-10

我有一个程序应该从用户那里获取输入,直到它收到 EOF

\n 或空格被视为合法字符, 但是控制台既不将 ^z 也不将 ^d 识别为 EOF 并且程序继续运行直到手动停止。

都试过了:

while (currChar != EOF)
{
scanf("%c", &currChar);
}

和:

scanf("%c", &currChar);
if (currChar==EOF)
 break;

最佳答案

scanf() 在到达输入末尾时不会将变量设置为 EOF,它返回 EOF。所以你必须测试函数的值。

while (scanf("%c", &currChar) != EOF) {
    ...
}

关于c - 无法识别 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50806392/

相关文章:

powershell - 使用动词时工作目录不起作用

azure - 在 Windows 10 中使用 powershell 设置/编辑远程桌面连接限制

c++ - 如何将 IAudioClient3 (WASAPI) 与实时工作队列 API 一起使用

c - 使用 C 将行号添加到文件中每一行的开头

c - 从 C 中的文件中单次访问读取 N 个整数

java - 让 Java 与 Windows 10 Ubuntu 一起工作

opencv - 在 UWP Windows 10 应用程序上使用 openCV

c - 低电平写入段错误

c - 可以表示为 float 的最大奇数

C 将 void 指针转换为函数指针