目前我在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
...或添加错误处理/报告 –