我最初正在构建一个类似索引的机制,使用 getline 读取文本文件的每一行,检查它是否与已知的标头声明 (string.compare) 匹配并将tellg位置作为索引保存到该点。然后我的意图是使用 seekg(index,ios::beg) 查找文件中标题所在的位置。在构建索引并调用 seekg(0,ios::beg) 时通读文件一次后,下一个 getline 返回一个空字符串,我希望在其中看到文件中的第一行。
下面是我的一部分代码,以更好地突出我的问题
//build the index
while (! m_fileIn.eof())
{
getline (m_fileIn,lineRead);
int lineID = getLineID(lineRead);
if(lineID==1) //if its an STRM
{
//save the index
}
}
// start reading the file data
m_fileIn.seekg(0,ios::beg);
//read first line (title)
getLineID 函数根据字符串比较的结果返回一个 int。
如果我需要重新读取文件,getline 的使用是否不正确?