[英]Qt, how do I repetedly read data from file?
我有一个文件,我想一次又一次地阅读,以更新代码中的参数。 但是使用QTextStream仅读取一次该值,然后每次读取0。
这基本上是我的代码:
int main(){
QString data;
QFile Status;
Status.setFileName("/home/user/status");
Status.open(QIODevice::ReadOnly);
QTextStream in(&Status);
While(1){
usleep(100);
data = in.readLine();
cout << "This is the status: " << data.toInt();
}
return 0;
}
问题是它一开始就正确地读取了“状态”文件,但是此后,它读出了“ 0” ...关于如何反复读取该文件的任何想法。
在其他信息中,我的想法是更改文件的数据以更新我的应用程序状态,该状态为0到100之间的数字(int)。
谢谢您的帮助,不胜感激.. :)
关闭文件,然后再次打开它或重置读取指针。
由于您将同时编辑它,因此很有可能需要在两次读取之间将其关闭。
关闭文件并因此释放I / O源怎么样?
您的代码没有意义。 如果您已成功打开文件,则没有人可以打开该文件进行写入。
您可以修改循环:
While(1){
usleep(100);
if(status.open(QIODevice::ReadOnly) ){
QbyteArray data = status.readline();//edited
status.close();
//read the first line (without newline)
QString valueString = QString(data).section(0, '\n');
cout << "This is the status: " << data.toInt();
}
}
如果文件被另一个程序打开,则if是天真的尝试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.