繁体   English   中英

Qt,如何反复从文件中读取数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM