使用ifstream和QtCreator从当前目录中读取文件

时间:2012-01-16 14:37:30

标签: c++ qt-creator

我正在使用Qt Creator进行没有Qt库的普通C ++项目。

我正在尝试打开这样的文件:

fopen("text.txt", "r");

ifstream fin;
fin.open("text.txt");

但它不能像Visual Studio中那样只使用文件名,我必须通过它的完整路径才能打开文件......

有人知道为什么吗?如何在不使用Qt库的情况下引用当前目录?

3 个答案:

答案 0 :(得分:2)

您可以使用QDir::current()检查工作目录是否符合您的要求。如果没有Qt,您可以使用the solution TomA linked to

run settings允许您配置它以从IDE运行应用程序。

答案 1 :(得分:2)

会;你的代码很好。但正如其他答案所暗示的那样,你需要确保在你认为的目录中运行它。

在左侧面板中选择“Projects”然后(从顶部的选项卡中)“运行设置”,它将在标有“工作目录”的字段中显示它运行可执行文件的位置。我认为默认情况下它是发布和调试文件夹上方的目录。

答案 2 :(得分:0)

Visual Studio和Qt Creator之间的区别可能是

  1. 每个都在项目结构的不同子目录中启动程序二进制文件。
  2. 一个人将text.txt文件作为项目的一部分复制到与二进制文件相同的输出目录,另一个则没有。
  3. 尝试使用this获取当前目录,然后查看它是否实际包含该文件。