私は最初にインデックスのようなメカニズムを構築し、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の使用は正しくありませんか?