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

时间:2013-01-14 18:51:13

标签: c++ c input console cross-platform

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

1 个答案:

答案 0 :(得分:2)

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

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