我这里有一个循环,它应该每 500 毫秒读取一次设备上的输出。这部分工作正常。但是,当我尝试引入 cin.get 来获取被按下的键“n”以停止循环时,我只得到与此时按键次数一样多的输出。如果我按任意键(除了'n')几次然后回车,我会得到更多的输出。我需要的是循环在没有任何交互的情况下继续循环,直到我想要它停止。
这是代码:
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
我对使用哪种类型的循环没有特别的偏好,只要它有效。
谢谢!