1

我有一个从 .txt 文件中读取信息的 C++ 项目。当我在 Eclipse 中调试时,一切都运行正常,但是当我使用调试 .exe 在 Eclipse 之外运行应用程序时,它找不到文本文件。这是因为 Eclipse 没有在调试文件夹中构建文本文件(不确定为什么当我在 eclipse 内部调试时它会运行)。

我的项目中有一个文件夹,其中包含我的所有文本文件,并且整个文件夹没有在 /Debug 文件夹中构建。我查看了一些文件属性,并且没有勾选“从构建中排除”等选项。我不知道还有哪里可以检查。

有任何想法吗?

4

1 回答 1

4

C++ 编译器不与.txt文件交互,这些文件在运行时动态加载。

我相信您的问题是您将文件名放在相对于程序运行位置的可执行文件中。这可能是一个问题,因为当 eclipse 启动它时,您的程序可能会在不同的位置运行。

例子:

Project File
    Bin
          Executable.exe
    Program.cpp
    text.txt

如果您有这种类型的结构,并且您通过工具运行程序,它可能会将工作目录设置为Project File,因此文本文件的相对路径将是text.txt. 但是,如果您要从文件内部启动程序,bin则文本文件的相对路径将是..\text.txt

一个简单的解决方案是将text.txt文件放在bin文件和project file或不使用relative path但使用absoulte path

Absoulte path是当你像这样写下从根开始的路径时C:\Project File\text.txt

于 2013-02-24T15:54:55.640 回答