C++ 我能';无法在生成中使用ifstream读取文件,但可以在IDE中读取

C++ 我能';无法在生成中使用ifstream读取文件,但可以在IDE中读取,c++,file-io,ifstream,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:

当我在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;
    }
}
这是文件夹结构:

Lab (the build)
src
salsaboy
|-tiles
|-maps
  |-test.sem

每次我在IDE之外运行它时,它都会说
文件丢失了
,即使我试图写入该文件
input.is_open()
不是真的。

我能看到的唯一方法是从可执行文件的目录中获取整个文件路径,剪切文件,并将其替换为我想要的文件路径。

只运行了3分钟,已经是一种没有上下文的厌恶。至少告诉我这个问题出了什么问题!。o o(“
if(input.is_open()){stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;more_stuff;}否则就在这里把你从地狱里弄出来()
”…人们为什么会这样做?…
if(!input.is_open())把你从地狱里弄出来();stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff;stuff在IDE之外运行时,您在哪里运行它?运行程序时,您确定当前的工作目录是
/wher/ever/Lab
?@LukePasfield那么您正在运行的文件在哪里?我在问题的文件夹布局中没有看到它。
Lab (the build)
src
salsaboy
|-tiles
|-maps
  |-test.sem