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