需要帮助getin ifstream :: open来打开文件和getline

时间:2011-06-18 20:56:11

标签: c++ boost recursion ifstream

我只是试图打开这个文件并使用getline函数从文件中读取,但我似乎无法弄清楚它为什么不起作用。我已经多次介入它并且文件即时尝试打开正确加载fileOpen变量,所以我不确定它为什么不打开,使用getline。我只想用getline读取文件,所有这些都是在递归函数中完成的,最终读取目录中的所有文件。如果您需要有关我正在做什么的更多信息,请告诉我。

string line;
ifstream file;
string fileOpen;
bf::directory_iterator dirIter ( fullPath ); //fullPath is type bf::path, passed into the function
fileOpen = (dirIter->path().filename());

file.open(fileOpen);
getline(file, line);

1 个答案:

答案 0 :(得分:-1)

path::filename函数返回基本文件名。如果您的路径为“foo \ bar.txt”,则path::filename将返回“bar.txt”。因此,除非“foo”位于当前目录中,否则该文件可能不存在。

你更有可能寻找的是:

file.open(dirIter->path().native());

或者,您可以使用boost :: filesystem iostream类型:

#include <boost/filesystem/fstream>

bf::ifstream file;
bf::directory_iterator dirIter ( fullPath ); //fullPath is type bf::path, passed into the function
file.open(dirIter->path());