【问题标题】:how to access a text file while debugging with eclipse CDT如何在使用 Eclipse CDT 进行调试时访问文本文件
【发布时间】:2011-09-01 20:34:00
【问题描述】:

我正在编写此代码以访问 eclipse CDT 中的文件

ifstream inFile;
ofstream outFile;
string next;

inFile.open("input.txt");
if (inFile.fail())
{
    cout << "\nCould not open input.txt";
    exit(1);

}

问题是当我尝试调试我的应用程序或从 Eclipse 内部运行我的应用程序时,它找不到 input.txt 文件。当我从控制台运行我的应用程序时,它可以正常工作并打开文件。我需要调试应用程序,但由于某种原因 eclipse ide 无法找到该文件,所以无法调试。

我应该把文件放在哪里?

【问题讨论】:

    标签: c++ c linux eclipse eclipse-cdt


    【解决方案1】:

    这可能是相对路径的问题。 input.txt 在你项目的根目录下吗? Eclipse 使项目的顶级目录成为工作目录。如果您将代码中的 "input.txt" 替换为完全限定的文件名,那也应该有效。

    【讨论】:

    • 谢谢,就是这样。我的印象是,如果您使用“filenameOnly.txt”引用它,它“必须”与可执行文件位于同一目录中,但是将它的副本放入项目根目录中可以解决它!
    • @georgelappies:是的,我不知道为什么 Eclipse 会那样做。您肯定希望工作目录位于 src 或 bin 文件夹中。
    • 您可以使用运行/调试配置的“工作目录”设置此位置。 help.eclipse.org/indigo/topic/org.eclipse.cdt.doc.user/…
    【解决方案2】:

    除了移动源输入文件之外,您还可以考虑更改启动应用程序的工作目录。

    通过将“运行配置”>[运行]>“参数”选项卡>“工作目录”从“${workspace_loc:[Project Name]}”设置为其他类似“${workspace_loc:[Project Name]} /Release",这是 Eclipse 常用的二进制目标目录。

    【讨论】:

      【解决方案3】:

      编写一个创建文件的测试程序,例如“Here_I_Am.txt”。

      找到它的目录将是可执行文件用作默认目录的目录。

      相对于“Here_I_Am.txt”文件,酌情为您的文件名添加路径。或者将你的文本文件放在与“Here_I_Am.txt”相同的目录中

      【讨论】:

        【解决方案4】:

        我发现使用 Eclipse,将文件放在项目的根目录中应该可以加载它。但是,如果您想从命令行运行它,该文件需要与可执行文件位于同一文件夹中(类似于项目文件夹中的 Debug/)。

        应该可以将文件拖放到您的 Eclipse 项目中。只需确保选择复制文件的选项,而不是链接到它。

        【讨论】:

          【解决方案5】:

          取消选择使用默认按钮后,选择包含二进制文件的文件夹。二进制文件可以在Run configurations &gt; Arguments &gt; working directory下找到。

          【讨论】:

            猜你喜欢
            • 2018-07-09
            • 2015-08-16
            • 1970-01-01
            • 2010-12-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-04-06
            • 2012-02-20
            相关资源
            最近更新 更多