我认为(虽然不能确定)您是在谈论Windows而不是Unix?
如果是这样,则命令行进程实际上可能不是在等待按键(或输入),
stdin而是在做与旧DOS
kbhit()功能等效的操作。
AFAIK无法使该功能相信没有实际按下键就已经按下了键盘。
要测试该理论,请创建一个文本文件“ input.txt”,其中包含一些空行,然后运行:
foo.exe < input.txt
这将显示您的程序是在等待
stdin还是在其他地方等待。

我认为(虽然不能确定)您是在谈论Windows而不是Unix?
如果是这样,则命令行进程实际上可能不是在等待按键(或输入),
stdin而是在做与旧DOS
kbhit()功能等效的操作。
AFAIK无法使该功能相信没有实际按下键就已经按下了键盘。
要测试该理论,请创建一个文本文件“ input.txt”,其中包含一些空行,然后运行:
foo.exe < input.txt
这将显示您的程序是在等待
stdin还是在其他地方等待。