以下代码如何运作? for循环的计数器在哪里,如何将计数器重置为行号0。
for (std::string line;std::getline(ifs, line); )
{
}
答案 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);