2

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

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

3 回答 3

6

不需要柜台。这相当于

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

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

于 2012-10-20T19:55:25.423 回答
3

您的for循环相当于:

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

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

于 2012-10-20T19:56:27.670 回答
1

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

ifs.seekg (0, ios::beg);
于 2012-10-20T20:04:04.590 回答