ifstream
C++コードでファイルを解析するために使用しています。seekg()
and を使用しtellg()
てコードの特定の行にジャンプすることができません。
特に、メソッド getLine を使用して、ファイルの特定の位置から行を読み取りたいと考えています。前の反復で保存された位置。
必要な行数をスキップするだけです。それを行う最善の方法は、 std::istream::ignore で文字列を無視することです
for (int currLineNumber = 0; currLineNumber < startLineNumber; ++currLineNumber){
if (addressesFile.ignore(numeric_limits<streamsize>::max(), addressesFile.widen('\n'))){
//just skipping the line
} else {
// todo: handle the error
}
}
最初の引数は、抽出する最大文字数です。これが正確に numeric_limits::max() である場合、制限はありません。
パフォーマンスが向上するため、std::getline の代わりに is を使用する必要があります。