【发布时间】:2016-03-06 06:24:17
【问题描述】:
我正在尝试检测 Ctrl+D 用户输入,我知道它返回 EOF。现在,我知道代码等待来自标准输入流的输入,但是有没有办法让程序继续运行,直到 Ctrl+D 命令在标准输入中?如果没有输入 Ctrl+D,程序应该继续运行超过 if 语句。
char buffer[];
if (fgets(buffer, 10, stdin) == NULL{
//write to file
}
【问题讨论】:
-
发布的代码无法编译。
-
不,这是不可能的。程序要么运行,要么停止并等待输入。它不能同时做这两件事。 (在有人说这可以通过多线程实现之前:我不建议现在就深入研究多线程)。
-
这对我来说就像一个关于XY problem的问题
-
您的缓冲区数组有问题 - EOF 不是
char(为此您需要int)。