代码之家  ›  专栏  ›  技术社区  ›  jonnyd42

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

  •  5
  • jonnyd42  · 技术社区  · 10 年前

    我使用boost::filesystem库打开一个具有特定路径file_path的文件:

     fs::ifstream file(file_path);
        string str;
        vector<string> filenames;
        while(getline(file, str)){
            filenames.push_back(str);
        }
    

    这段代码是根据常规C++代码改编而来的,没有任何提升。最初,我正在读取当前目录中的一个文件,但我不得不编辑路径。现在看来getline工作不正常。有没有一种替代getline的boost方法,这样我就可以逐行解析文件并将其读入向量中?

    谢谢

    2 回复  |  直到 10 年前
        1
  •  6
  •   Andrey Semashev    10 年前

    boost::filesystem::ifstream 只是另一个输入流,所有标准算法都以同样的方式应用于它 std::ifstream . std::getline 它也可以使用。

        2
  •  5
  •   Mazhar MIK    5 年前

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

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