1

我需要一种以非阻塞方式调用 std::cin 的跨平台方式。我知道线程是可能的,但也许有更好的选择?Threds 似乎是矫枉过正。

4

1 回答 1

2

标准 C 和 C++ 不提供任何方法来执行非阻塞 I/O。通常,在用户按下键之前,C 和 C++ 运行时环境根本看不到任何输入<ENTER>

因此,唯一的选择实际上是使用单独的线程来读取输入,或者使用特定于平台的方法来执行非阻塞输入(可能已包装,以便在移植到不同平台时可以轻松替换该部分。库之类的ncurses提供这些为许多平台预先包装的输入法)。

于 2013-01-14T19:04:37.190 回答