2013-02-24 100 views
1

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

我在我的项目中有一个文件夹,其中包含我所有的文本文件,并且整个文件夹不在/ Debug文件夹中。我查看了一些文件属性,并且选项如“从构建中排除”未被勾选。我不知道还有哪些地方需要检查。

任何想法?

回答

4

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

我相信你的问题是你把文件名放在你的可执行文件中,与程序运行的地方相关。这可能是一个问题,因为当eclipse启动它时,你的程序可能会在不同的位置运行。

例子:

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

如果你有这种类型的结构,并通过你的工具运行您的程序可能使working directory设置为Project File等文本文件中的相对路径将是text.txt。但如果你从bin文件,而不是文本文件中的相对路径内启动该程序将是..\text.txt

一个轻松的解决方案,这是对text.txt文件放置在两个bin文件和project file或不要” T选用relative path但使用absoulte path

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

+1

谢谢!它现在工作完美。 我添加了一些代码,以便如果它无法从传递给它的位置打开,那么它将在路径前添加“..//”并再次尝试。 – 2013-02-24 16:32:56