以下のコードはどのように機能しますか? 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);