我目前正在寫一些測驗程序。該程序向用戶提出問題,直到指定的時間限制用完。現在如何設置測驗功能是在一個提升線程中運行的,並且定時方面由該線程上的timed_join()處理。我遇到的問題是當用戶使用cin回答問題時,線程將超過已建立的時間限制。有沒有辦法讓它打斷cin調用?用C++/Boost繞過阻塞輸入流
3
A
回答
2
您可以使用Boost.Asio異步讀取cin
here - 示例代碼的更新鏈接爲here。
2
您可以通過使用getchar
,getch
或getche
以非阻塞式讀取字符讀取輸入字符。如果你已經循環足夠長的時間來達到超時,那麼停止循環:)。
0
您可能需要使用其他輸入法。 readline庫可能可以幫助你。或者,如果你是在Linux上,你可以去到純文件描述符,使STDIN_FILENO
無阻塞像一個非阻塞套接字,並使用select
系統調用,然後你可以同時獲得超時,並知道何時輸入已準備就緒。
相關問題
- 1. Java輸入流「阻塞」和多線程
- 2. 非阻塞式輸入python2.7
- 3. 阻塞輸入對話框
- 4. 如何使用阻塞輸入源構造流程圖
- 5. 線程中斷未終止輸入流讀取阻塞調用
- 6. Perl無阻塞用戶輸入
- 7. 發送輸入到PHP的ssh的阻塞流
- 8. 非阻塞寫入和阻塞recv
- 9. 線程圍繞阻塞閱讀
- 10. 流讀取阻塞UDP GNAT
- 11. Python無阻塞控制檯輸入
- 12. 從sys.stdin獲取輸入,非阻塞
- 13. 非阻塞從標準輸入讀取
- 14. c中的非阻塞輸入
- 15. lisp中的非阻塞輸入
- 16. 非阻塞控制檯輸入C++
- 17. 的ncurses和標準輸入阻塞
- 18. WPF模式窗口阻塞輸入
- 19. 如何繞過CORS並從CORS阻塞的API獲取數據?
- 20. PHP流中的阻塞和非阻塞模式
- 21. 通過JNI實現的Java中的非阻塞輸入
- 22. 阻塞輸出,直到輸入完成使用線程java
- 23. Ant Sshexec輸出被阻塞?
- 24. mpi:阻塞與非阻塞
- 25. 阻塞或不阻塞(Express.js)
- 26. 阻止阻塞的線程阻塞
- 27. 被阻塞超過120秒
- 28. CSS過渡相互阻塞
- 29. 阻塞的逆過程
- 30. ANDROID:Iptables阻塞傳入連接
1爲了簡單起見。對於小型項目,這是我該怎麼做的。 –