我有一个C ++项目,它从.txt文件中读取信息。当我在Eclipse中调试时,一切都运行正常,但是当我使用debug .exe在eclipse之外运行应用程序时,它无法找到文本文件。这是因为Eclipse没有在调试文件夹中构建文本文件(不确定为什么它在我调试eclipse之后运行)。
我的项目中有一个包含所有文本文件的文件夹,并且整个文件夹没有在/ Debug文件夹中构建。我已经浏览了一些文件属性,并且没有勾选“从构建中排除”等选项。我不知道还能在哪里检查。
有什么想法吗?
答案 0 :(得分: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
中,或者不要使用relative path
,而是使用absoulte path
}
Absoulte path
是指从根开始写下路径,如C:\Project File\text.txt