下面的代码是如何工作的? for循环的计数器在哪里?如何将计数器重置为行号0.在C++中逐行读取文本文件
for (std::string line;std::getline(ifs, line);)
{
}
下面的代码是如何工作的? for循环的计数器在哪里?如何将计数器重置为行号0.在C++中逐行读取文本文件
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);
如何我回去线0? – rajat
@rajat [Seek](http://msdn.microsoft.com/en-us/library/y2d6fx99(v = vs.110).aspx)通过该文件。 –
我发现一个更简单的方法,我只是关闭并重新打开该文件。 > ifs.close(); ifs.open(filename); – rajat