0

在 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>

我希望它读取< /Station>,直到它到达<,沿途计数。

4

1 回答 1

0

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

于 2014-05-28T12:36:54.890 回答