c++ - 具有非阻塞控制台输入的跨平台方式

标签 c++ c input console cross-platform

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

最佳答案

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

所以,唯一的选择是真正使用单独的线程来读取输入,或者使用特定于平台的方法来执行非阻塞输入(可能被包装,以便在移植到不同平台时可以轻松替换该部分. 像 ncurses 这样的库提供了这些为许多平台预包装的输入法)。

关于c++ - 具有非阻塞控制台输入的跨平台方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14324663/

相关文章:

c++ - QSortFilterProxyModel 和插槽 setFilterFixedString

C++ 链接器错误 OSX Mavericks

C libpq : get float value from numeric

python - Pygame - 除非在整个跳跃过程中按住跳跃按钮,否则玩家不会跳跃

c++ - 在运行的 JVM 中注入(inject) Jar 并替换类

c - 从 C 中的 bool 值设置位掩码的快速方法

c - 在 C 中同时执行两个本地套接字服务器

css - 如何在 Firefox 4 + 中重置默认按钮样式

html - 如何根据标签字体大小调整输入单选框/复选框的大小?

C++——向私有(private)成员字段 std::vector 添加元素