CFile和CStdioFile每次读取一个字节



使用Visual Studio 2008中的c++ MFC,我试图使用CFile或CStdioFile来读取文本文档的最后一行,存储它,然后在文件修改文本后重新打印它。

我已经得到了那部分工作,唯一的问题是,它不是动态的,你必须手动创建一个偏移,无论最后一行是多长。因此,我试图创建一个函数,读取最后一行,直到它在所有文件中找到一个共同的元素,并计算有多少字节。这就是我现在所做的:

int MeasureLastTag(CStdioFile* xmlFile)
{
TCHAR lastTag[1];
CString tagBracket = _T("");
xmlFile->Seek(0, CFile::end);
int count = 0;
while(tagBracket != _T("<"))  //Go back two, read ahead one
{
    xmlFile->Seek(-2, CFile::current);
    xmlFile->Read(lastTag, 1);
    tagBracket = lastTag;
    count++;
}
return count;
}

然而,这会导致一个我似乎无法摆脱的无限循环。有什么好主意吗?

附加信息,这是一个示例文件。

<Station>
</Station>

我想让它读<</p>

直到到达<<div class="one_answers">

将TCHAR lastTag[1]更改为char lastTag[1]已经解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新