我无法在构建中使用 ifstream 读取文件,但可以在 IDE 中读取它
I can't read a file with ifstream in a build, but can read it in an IDE
当我 运行 Eclipse 中的一个程序应该读取文件并将其内容输出到控制台时,它读取并输出它没有任何问题,但是当我构建它并且 运行 它在 IDE 之外它不会读取它。
这是读取文件的代码:
Map::Map(std::string file, SE_Graphics *graphics) {
std::ifstream input(file);
if (input.is_open()) {
std::string line;
while (std::getline(input, line)) {
std::cout << line << std::flush;
}
input.close();
} else {
std::cout << "File is missing" << std::flush;
}
}
这就是我调用方法的方式:
Map map("salsaboy/maps/test.sem", se.getGraphics());
这是文件夹结构:
Lab (the build)
src
salsaboy
|-tiles
|-maps
|-test.sem
每次我 运行 它在 IDE 之外它只是说 File is missing
,即使我试图写入那个文件 input.is_open()
也是不正确的。
我能看到的唯一方法是从可执行文件的目录中获取整个文件路径,删除文件,然后用我想要的文件路径替换它。
当我 运行 Eclipse 中的一个程序应该读取文件并将其内容输出到控制台时,它读取并输出它没有任何问题,但是当我构建它并且 运行 它在 IDE 之外它不会读取它。
这是读取文件的代码:
Map::Map(std::string file, SE_Graphics *graphics) {
std::ifstream input(file);
if (input.is_open()) {
std::string line;
while (std::getline(input, line)) {
std::cout << line << std::flush;
}
input.close();
} else {
std::cout << "File is missing" << std::flush;
}
}
这就是我调用方法的方式:
Map map("salsaboy/maps/test.sem", se.getGraphics());
这是文件夹结构:
Lab (the build)
src
salsaboy
|-tiles
|-maps
|-test.sem
每次我 运行 它在 IDE 之外它只是说 File is missing
,即使我试图写入那个文件 input.is_open()
也是不正确的。
我能看到的唯一方法是从可执行文件的目录中获取整个文件路径,删除文件,然后用我想要的文件路径替换它。