カーソルが特定の位置にあるテキスト ファイルを開いています。カーソルの行番号を見つける必要があります。次のアプローチのうち、パフォーマンスの観点から最適なものはどれですか?
1) 現在の位置を変数 'pos' に格納し、ファイルの先頭から 'pos' までのすべての '\n' 文字を検索します。
ifstream in("file.txt");
// move anywhere in the file
int lineNum = 0;
std::string line;
istream::pos_type pos = in.tellg();
in.seekg(0);
while ( std::getline(in, line) ) {
++lineNum;
if(in.tellg() >= pos) break;
}
2) 別の ifstream を使用して同じことを行います。
3) 他に何かありますか?