目前我在Ubuntu Linux下使用基於Qt 5.1.1的QtCreator 2.8.1。我同時做了兩個,Qt開發和編碼純C++項目。因爲我不想爲後者安裝第二個重要的IDE,所以我想使用QtCreator。使用QtCreator構建純C++
到目前爲止,我通過點擊File->New->C/C++ Project (without Qt)->C++-Project
創建了一個新的C++項目(沒有Qt)。所以現在編碼工作正常。但隨着我的第一個構建我發現了一個巨大的問題,我的main.cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream infile("file1.in");
string line;
while(infile >> line) {
cout << line << endl;
}
cout << "hello world" << endl;
return 0;
}
當我運行這個內QtCreator我只看到「Hello World」的控制檯上,但僅此而已(file1.in包含超過20個原始文本行)。現在奇怪的事情。在編譯這個後,我看到我所有的20行文字和「hello world」。
有沒有人知道爲什麼會發生這種情況?我以爲我不得不在QtCreator中改變編譯器,但是這種嘗試沒有成功。
如果您從QtCreator運行可執行文件,我猜你正在閱讀的文件不在可執行文件的工作目錄中,所以文件永遠不會被讀取。由於您沒有針對這種情況的錯誤處理,您的軟件只會打印hello world。要驗證將file1.in的完整路徑添加到ifstream的構造函數中。 –
你也可以檢查你是否禁用了「陰影構建」來確保Arne是正確的。 – Kakadu
...或添加錯誤處理/報告 –