2013-10-02 187 views
0

我需要從foo.txt的讀字符串:從文件中讀取字符串。 QTextStream不讀文件

#include <QDebug> 
#include <QFile> 
#include <QStringList> 
#include <QTextStream> 

int main(int argc, char** argv) 
{ 
    QFile file("foo.txt"); 
    if (!file.open(QIODevice::ReadOnly)) 
     return 1; 
    QStringList stringList; 
    QTextStream textStream(&file); 
    textStream.readLine(); 
    while (!textStream.atEnd()) 
     stringList << textStream.readLine(); 

    file.close(); 

    qDebug() << stringList; 

    return 0; 
} 

outPut

文件打開,但文本流總是空的。

+0

它適用於在Linux上運行它的命令行。它打印出'(「美好的一天」)'這是我所期望的,因爲你不把第一行放到字符串列表中。 – Troubadour

+0

問題是:項目文件夾中的foo.txt,但生成文件夾中的.exe。我可以在.exe中包含foo.txt,因爲不必擔心「該文件在哪裏?」 – punksta

回答

1

從您的評論中可以看出,可執行文件根本找不到文件,因爲它們位於不同的位置。有很多方法可以解決這個問題,它取決於最終用例的意思。這裏有一些方法可以解決這個問題:

  • 硬編碼的文件路徑(相對或絕對)
  • 移動文件是在同一目錄下的可執行
  • 使用命令行選項告訴可執行文件所在
  • 使用環境變量來告訴可執行文件在哪裏看

爲了測試的前兩個選項要麼是快速和容易的,但你可能會想一些如果你打算進一步採取行動,比這更好的事情。

+0

謝謝,哪種方式適用於Android? – punksta

+0

@StasShakirov:它不是特定於Android。 Troubadour試圖寫的是,您需要評估這些選項併爲您的場景選擇最佳選擇。您尚未分享足夠的信息來幫助解決這個問題。 – lpapp