我有一个打开的文本文件,光标在某个位置。我需要找到光标的行号。从性能的角度来看,以下哪种方法最好?
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)还有什么?