使用Boost文件系统C++逐行读取文件

5
我正在使用boost::filesystem库打开一个特定路径file_path的文件:
 fs::ifstream file(file_path);
    string str;
    vector<string> filenames;
    while(getline(file, str)){
        filenames.push_back(str);
    }

这段代码是从普通的C++代码中改编而来,没有使用boost库。我最初是在读取当前目录下的文件,但我必须编辑路径。现在似乎getline函数不能正常工作。是否有boost库的替代品可以逐行解析文件并将其读入向量中?

谢谢!


如果你在更改文件路径后遇到了问题,可能是因为文件无法成功打开。 - J.J. Hakala
“not working correctly” 是什么意思?你需要发布代码、期望的行为和实际的行为。 - Andrew Henle
2个回答

6

boost::filesystem::ifstream 是另一种输入流,所有标准算法都可以像对待 std::ifstream 一样对待它。 std::getline 也适用于它。


5
上面的回答是绝对正确的。如果有人想要完整的代码:

boost::filesystem::ifstream fileHandler(fileName);
string line;
while (getline(fileHandler, line)) {
    cout << line << endl;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接