我无法在构建中使用ifstream读取文件,但可以在IDE中读取文件

时间:2018-11-05 00:09:20

标签: c++ file-io ifstream

当我在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()也不正确。

1 个答案:

答案 0 :(得分:0)

我唯一能看到的是从可执行文件目录中获取整个文件路径,将文件切出,然后用所需的文件路径替换。