ここにあるのは、機器の出力を 500 ミリ秒ごとに読み取るループです。この部分は正常に動作します。しかし、ループを停止するために押されたキー「n」を拾うために cin.get を導入しようとすると、ここまでのキーを押した回数だけしか出力されません。任意のキー (「n」以外) を数回押してから Enter キーを押すと、さらにいくつかの出力が得られます。私が必要とするのは、ループを停止するまで、対話なしでループし続けることです。
コードは次のとおりです。
for(;;)
{
count1++;
Sleep(500);
analogInput = ReadAnalogChannel(1) / 51.0;
cout << count1*0.5 << " " << analogInput << endl;
outputFile << count1*0.5 << ", " << analogInput << endl;
if (cin.get() == 'n') //PROBLEM STARTS WITH THIS INTRODUCED
break;
};
私の出力は次のとおりです (プログラムのこの段階に到達するには、2 つのキーを押す必要があります)。
0.5 0 // as expected
1 2 // as expected
should be more values until stopped
機能する限り、どのタイプのループを使用するかについて特に好みはありません。
ありがとう!