我寫了一個小程序,在特定時間量之後,如何使從`的std :: cin`超時讀書
int main(int argc, char *argv[])
{
int n;
std::cout << "Before reading from cin" << std::endl;
// Below reading from cin should be executed within stipulated time
bool b=std::cin >> n;
if (b)
std::cout << "input is integer for n and it's correct" << std::endl;
else
std::cout << "Either n is not integer or no input for n" << std::endl;
return 0;
}
從std::cin
讀數因此,該程序阻塞等待,直到有一個外部中斷(如同樣的信號)給程序或用戶提供一些輸入。
我應該如何聲明std::cin >> n
等待一段時間(可能使用sleep()
系統調用)用於用戶輸入? 如果用戶沒有提供輸入,並且在完成規定的時間後(比如說10秒),程序應該繼續執行下一條指令(即if (b==1)
聲明)。
[這個問題似乎很相似(http://stackoverflow.com/questions/10558934/while-loop - 即-犯規等待換CIN)。希望你覺得它有幫助 –
我很驚訝沒有人發佈了一個使用C++ 11的線程的答案呢,我覺得這應該是可能的。 –
@Santosh:我已經稍微編輯了這個問題。 –