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中文網其他相關文章!