← 模式

逐行读取

1234567891011121314#include <sstream> #include <string> int main() { std::istringstream stream{"This stream\n" "contains many\n" "lines.\n"}; std::string line; while (std::getline(stream, line)) { // 处理行 } }

此模式采用 CC0 公共领域贡献 许可。

要求 c++98 或更新版本。

意图

逐行处理输入流的内容。

描述

我们使用一个 std::istringstream 作为示例输入流(第 6-8 行),它包含多行(由 \n 分隔)。这个流也可以替换为 std::cin 或文件流等。在第 9 行,我们引入一个 std::string,用于读取流中的每一行。

第 11-13 行,我们使用一个 while 循环来遍历流的每一行。循环的条件是对 std::getline 的调用,它将 stream 中的行提取到 line 中。只有当提取失败时(例如,没有更多行可以提取时),此调用的结果才会评估为 false

贡献者

  • Joseph Mansfield

最后更新

2017年12月9日

来源

在 GitHub 上 Fork 此模式

分享