我需要一种跨平台的非阻塞方式调用std::cin。我知道这是可能的线程,但也许有一个更好的选择?线程似乎是多余的。
标准C和c++没有提供任何非阻塞I/O的方法。通常,C和c++运行时环境在用户按下<ENTER>
键之前根本看不到任何输入。
所以,唯一的选择是使用一个单独的线程来读取输入,或者使用特定于平台的方法来执行非阻塞输入(可能是包装的,以便在移植到不同平台时可以轻松替换该部分)。像ncurses
这样的库为许多平台提供了预包装的这些输入法)。