目前我在Ubuntu Linux下使用基于Qt 5.1.1的QtCreator 2.8.1。我做了两个,Qt开发和编写纯C ++项目。因为我不想为后者安装像Eclipse这样的第二个重量级IDE,所以我想使用QtCreator。
到目前为止,我点击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行原始文本)。现在奇怪的是。用一点g++ main.cpp
编译后,我看到了所有20行文字和“你好世界”。
有没有人知道为什么会这样?我想我必须在QtCreator中更改编译器,但这次尝试没有成功。
答案 0 :(得分:0)
QtCreator默认使用shadow build,这意味着你的可执行文件将构建在单独的文件夹中。在您的代码中,您使用文件的相对路径:
ifstream infile("file1.in");
只需更改完整路径或确保您的file1.in存在于项目的shadow build文件夹中。
ifstream infile("C:\\file1.in");