2016-09-14 4 views
2

時間の経過と共に精度が向上する数値計算を実行するプログラムがあります。これは、いくつかのパラメータの異なる値に対してそうする。それぞれの結果に必要な精度は、私には全く知られていない方法で、これらのパラメータの値に依存します。キーボード入力をループ内でC++で収集する方法

各値に対して十分な精度を得るには、計算をカットし、ユーザーがキーボードに当たるとパラメータの新しい値に移動するプログラム/ループを考えています。

概略的に:Windowsでは

//initialise parameters 
while(parameters_in_good_range){ 
    while(no_key_pressed){ 
     //do calculation 
    } 
    //update parameters 
} 
+1

あなたはどのプラットフォームにいますか? –

+5

標準のC++でキーボードをポーリングする方法はありません.OS固有の関数に依存する必要があります。 –

+1

@MarkRansomはあなたに完全に同意していません.C++ 11以降、スレッドを作成して制御することができ、いくつかの基本的な同期メカニズムがあります。したがって、計算を行うスレッドと標準入力を読み取るスレッドを持つことができます。 2番目の入力を受け取ると、他の人にそれを終了する必要があることを伝えることができます – Garf365

答えて

1

このプログラムはループキーボードのキーが押されますまで、:Linux上で

#include <conio.h> 

void main() 
{ 
    while (1) 
    { 
     if (_kbhit()) 
     { 
      break; 
     } 
    } 
} 

を、このanswerを見ています。それはあなたが望むことをするためにncursesを使う方法を教えてくれます。

+2

'while(!_ kbhit()){/ * do stuff * /}'はなぜですか? – GreenAsJade

+3

OPはLinuxでWindowsではなく、どちらの意味でも問題ありません – Rok

+0

上記のLinuxの答えにリンクしてください。 –

関連する問題