下面的代码是如何工作的?for循环的计数器在哪里,如何将计数器重置为行号0。
for (std::string line;std::getline(ifs, line); )
{
}
不需要柜台。这相当于
std::string line;
while(getline(ifs, line))
{
}
有一些方法可以将输入迭代器移回文件的开头。像:ifs.seekg(0, std::ios::beg);
应该做的伎俩。
您的for
循环相当于:
{
std::string line;
while (std::getline(ifs, line)) {
}
}
换句话说:“只要getline
返回就继续迭代true
”。
并将计数器重置为第 0 行(即流的开头),您应该使用
ifs.seekg (0, ios::beg);