2

目前我在 Ubuntu Linux 下使用基于 Qt 5.1.1 的 QtCreator 2.8.1。我同时做 Qt 开发和编码纯 C++ 项目。因为我不想为后者安装第二个重量级 IDE,比如 Eclipse,所以我想使用 QtCreator。

到目前为止,我通过单击创建了一个新的 C++ 项目(没有 Qt)File->New->C/C++ Project (without Qt)->C++-Project。所以现在编码工作正常。但是在我的第一次构建中,我发现我的 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 行文本和“hello world”。

有人知道为什么会这样吗?我以为我必须更改 QtCreator 中的编译器,但这次尝试没有成功。

4

1 回答 1

0

QtCreator 默认使用影子构建,这意味着您的可执行文件将构建在单独的文件夹中。在您的代码中,您使用文件的相对路径:

ifstream infile("file1.in");

只需更改它的完整路径或确保您的 file1.in 存在于项目的影子构建文件夹中。

ifstream infile("C:\\file1.in");
于 2016-11-24T09:41:22.480 回答