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

Read a file from current directory using ifstream and QtCreator

本文关键字:读取 文件 当前目录 ifstream QtCreator 使用      更新时间:2023-10-16

我将Qt Creator用于一个没有Qt库的普通C++项目。

我正试图打开这样一个文件:

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

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

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

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

您可以使用QDir::current()来检查工作目录是否是您想要的。如果没有Qt,您可以使用链接到的解决方案TomA。

运行设置允许您将其配置为从IDE运行应用程序。

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

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

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

  1. 每个程序都在项目结构的不同子目录中启动程序二进制文件
  2. 一个将text.txt文件作为项目的一部分复制到与二进制文件相同的输出目录中,另一个则不复制

尝试使用这个获取当前目录,然后查看它是否真的包含该文件。