在C ++中逐行读取文本文件

时间:2012-10-20 19:53:26

标签: c++ string io

以下代码如何运作? for循环的计数器在哪里,如何将计数器重置为行号0。

for (std::string line;std::getline(ifs, line); )
{
}

3 个答案:

答案 0 :(得分:6)

不需要柜台。这相当于

std::string line;
while(getline(ifs, line))
{
}

有一些方法可以将输入迭代器移回文件的开头。类似于:ifs.seekg(0, std::ios::beg);应该可以做到这一点。

答案 1 :(得分:3)

您的for循环相当于:

{
    std::string line;
    while (std::getline(ifs, line)) {
    }
}

换句话说:“只要getline返回true”,就会继续进行迭代。

答案 2 :(得分:1)

要将计数器重置为第0行(即到流的开头),您应该使用

ifs.seekg (0, ios::beg);