下面的代碼是如何工作的? 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