【问题标题】:Read a file from current directory using ifstream and QtCreator使用 ifstream 和 QtCreator 从当前目录读取文件
【发布时间】:2012-01-16 14:37:29
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

标签: c++ qt-creator


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢:D,你是对的,我使用的是影子构建选项,所以它是在另一个文件夹上构建的。
    【解决方案3】:

    Visual Studio 和 Qt Creator 的区别可能在于

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2019-07-08
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多