Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要一种以非阻塞方式调用 std::cin 的跨平台方式。我知道线程是可能的,但也许有更好的选择?Threds 似乎是矫枉过正。
标准 C 和 C++ 不提供任何方法来执行非阻塞 I/O。通常,在用户按下键之前,C 和 C++ 运行时环境根本看不到任何输入<ENTER>。
<ENTER>
因此,唯一的选择实际上是使用单独的线程来读取输入,或者使用特定于平台的方法来执行非阻塞输入(可能已包装,以便在移植到不同平台时可以轻松替换该部分。库之类的ncurses提供这些为许多平台预先包装的输入法)。
ncurses