使用CFile检查换行符(换行字符)



我需要检查文件是否以换行符结束,使用CFile。我试过的:

  1. 将文件指针指向文件的末尾
  2. 将指针向后移动2个单位
  3. 检查指针是否指向rn
下面是我的代码:
cfile.SeekToEnd();
cfile.Seek(-2, CFile::current);
char buffer[2];
cfile.Read(buffer, 2);
if(buffer[0] == 'r' && buffer[1] == 'n') printf("Ended with line break!");
else printf("Not ended with line break!");

然而,我发现缓冲区给了我一个n字符和一个垃圾字符(具有奇怪的值,如204)。在通过文档进行了一些研究之后,我发现CFile::Read只将rn计算为单个字符:

对于文本模式文件,回车-换行对计算为单个字符。

我很困惑,因为文件指针显然仍然计数2个字符,但我不能得到他们两个。是否有任何方法来检查在CFile文件结束换行?

我通过在打开文件时使用CFile::typeBinary解决了这个问题。

似乎CFile::typeText做了一些特殊的处理回车换行对(例如填充一个垃圾字符,应该是回车),这在我的情况下是不需要的。

相关内容

  • 没有找到相关文章

最新更新