我幾天前開始使用Qt。但是,當我想要讀取文件時,雖然文件已打開,但我無法從中讀取一行文件。 qDebug的輸出是「文件已打開」,但這一段時間沒有做任何事情(我沒有在TextArea(textEdit)中找到「它工作嗎?」)文本。 我錯過了什麼?該文件當然有,可以打開,並有2行。Qt:在閱讀.txt文件時遇到問題
QFile file("savefile.txt");
if (!file.open(QIODevice::ReadOnly))
{
qDebug()<<"The file is not open.";
return;
}
else
{
qDebug()<<"The file is open.";
QString line;
QTextStream in(&file);
while(!in.atEnd())
{
line = in.readLine();
qDebug()<<"Line: "<<line.toLatin1();
ui->TextArea->setText("Does it work?");
}
file.close();
}
那麼,我錯過了什麼? 我試圖按照Qt入門教程做這個,但沒有創建對話框(Link to the page,向下滾動到「打開文件」)。 感謝您提前提供任何幫助!
編輯1:由於該文件有2行(確切地說是「Asd。」和「asd。」),我用for(int i = 0; i<2; i++)
替換了這段時間。 QDebug現在告訴我兩次:
Line: ""
Line: ""
我假設有一些東西與while(!in.atEnd())
。
編輯2:取代週期和in.readLine()
至ui->TextArea->setText(in.readAll().toLatin1());
。結果仍然是相同的(如果我用ui->TextArea->setText("Hey!");
,它的工作原理
如果您對此文件或任何文件的完整路徑進行硬編碼,它會工作嗎?我得到的可能是你的程序的「當前目錄」被設置爲除了你的文件所在的地方。 – indiv 2015-01-20 19:18:47
將文件直接放到C:\ savefile.txt中。結果是一樣的。從if(!file.open()),我收集文件被識別並打開。 – KvB 2015-01-20 19:31:52
確保你沒有使用C:\ savefile.txt作爲字符串。用C++記住你需要在你的C++代碼中使用''C:\\ savefile.txt「或'」C:/savefile.txt「'代替C:\ savefile.txt。雖然編譯器應該警告你,但很多初學者會忽略警告。 – drescherjm 2015-01-20 20:10:02