我正在尝试从文件中读取。它似乎想要(至少)一条相对路径。我看到的大多数教程只使用文件名。
我在一个目录中有src
dir和build
dir。当我通过相对路径时,它可以工作。但是,如果我尝试在Docker容器中运行此代码,那么现在我的代码将无法工作,除非我给它一个绝对路径。
我做错了吗?读取文件并不困难。
这是我的代码:
std::string line;
std::vector<std::string> thingsToDo;
std::ifstream myfile(filename);
if (myfile.is_open()) {
while (getline(myfile, line)) {
thingsToDo.push_back(line);
}
myfile.close();
}
else {
std::cout << "Unable to open file" << std::endl;
}
“filename”是......
std::string filename = "things.txt" << works in tutorials, but not in real life :\
std::string filename = "../src/things.txt" << works on my machine :) (because remember, we are running the code from 'build' dir)
std::string filename = "/tmp/abolute/path/things.txt" << works in Docker :\
...帮助
答案 0 :(得分:0)
已解决。最简单的事情:将文件复制到构建中。然后你所要做的就是传递文件名。
如何:
CMakeLists:
configure_file (
"${PROJECT_SOURCE_DIR}/things.txt"
"${PROJECT_BINARY_DIR}/things.txt"
)