今天在写程序是遇到一个问题,以下是程序片段:
QTextStream out(stdout);
QTextStream in(stdin);
int cameraCount = this->flushCamera();
if(cameraCount == 0)
{
out<<QString(tr("当前无可使用摄像头"))<<endl;
return;
}
else{
out<<QString(tr("有"))<<cameraCount<<QString(tr("个摄像头可用\n请输入摄像头编号:"));
in>>this->cameraNumber;
程序有个很怪的问题,程序运行时,cameraCount不等于0,是首先等待输入,输入后再显示:
0
有1个摄像头可用
请输入摄像头编号:
也就是out<<.......<<endl;这条语句后执行,而in<<.....<<endl;先一样。
请问各位大神这是什么原因?谢谢
------解决方案--------------------
要flush一下。标准输入出有缓存的。调用 flush 方法。