2014-01-20 74 views
0

如停止計時器:如何當用戶在運行時輸入任何

cout<<"\n Time used (in seconds) :"; 
for(int i=0; i<100; i++) 
{ 
     cout<< i; 
     delay(1000); 
     cout<<"\b"; 
} 

我想修改的程序段,使得在循環的推移,如果用戶按下任意鍵(在運行時),循環停止。如果他不這樣做,循環會繼續,直到i = 100。

我意識到多線程是唯一能做到這一點的。 因爲我是初學者,所以如果你告訴我如何在不使用類的情況下繼續下去,請給我一個帶有註釋的程序來解釋語法和邏輯。

+0

基本上你想要解鎖'cin'或select()'類型的函數。閱讀[非阻塞讀取描述符調用](http://stackoverflow.com/questions/5616092/non-blocking-call-for-reading-descriptor)**或** [使用fgets作爲非阻塞函數C++] (http://stackoverflow.com/questions/6055702/using-fgets-as-non-blocking-function-c)**或** [非阻塞控制檯輸入C++](http://stackoverflow.com/questions/6171132/non-blocking-console-input-c) –

+5

「請給我一個程序」不會很好! –

回答

1

的Windows上的線程提供了大量的文檔,請參閱如何在C創建線程++下面的教程: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682516%28v=vs.85%29.aspx

另外,您可以使用升壓庫,這將使上最先進的操作系統,包括UNIX和Windows的工作,這裏是一個教程: http://antonym.org/2009/05/threading-with-boost---part-i-creating-threads.html

你也應該考慮時機的更精確的方法,我發現在計算器上的主題討論時間: How to Calculate Execution Time of a Code Snippet in C++

相關問題