我需要一种以非阻塞方式调用 std::cin 的跨平台方式。我知道线程是可能的,但也许有更好的选择?线程似乎对此有点矫枉过正。
最佳答案
标准 C 和 C++ 不提供任何方法来执行非阻塞 I/O。通常,在用户按下 <ENTER>
之前,C 和 C++ 运行时环境根本看不到任何输入。键。
所以,唯一的选择是真正使用单独的线程来读取输入,或者使用特定于平台的方法来执行非阻塞输入(可能被包装,以便在移植到不同平台时可以轻松替换该部分. 像 ncurses
这样的库提供了这些为许多平台预包装的输入法)。
关于c++ - 具有非阻塞控制台输入的跨平台方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14324663/