C 程序的非阻塞控制台输入策略
在现代编程中,通常需要在程序不断地执行并输出信息。非阻塞控制台输入对于实现此功能至关重要。本文探讨了在 C 中有效实现非阻塞控制台输入的各种技术。
使用 C 11 和 Future 的异步输入
一种方法依赖于 C 11 的
示例:
<code class="cpp">#include <iostream> #include <chrono> #include <future> static std::string getAnswer() { std::string answer; std::cin >> answer; return answer; } int main() { std::chrono::seconds timeout(5); std::cout << "Do you even lift?" << std::endl << std::flush; std::string answer = "maybe"; //default to maybe std::future<std::string> future = std::async(getAnswer); if (future.wait_for(timeout) == std::future_status::ready) answer = future.get(); std::cout << "the answer was: " << answer << std::endl; exit(0); }</code>
其他注意事项:
除上述之外方法,开发人员还可以考虑使用:
方法的选择取决于平台兼容性、性能要求和易用性等因素执行。探索各种选项可确保为特定项目需求选择最合适的解决方案。
以上是C 程序如何在不阻塞执行的情况下接受用户输入?的详细内容。更多信息请关注PHP中文网其他相关文章!