我需要检查文件是否以换行符结尾,使用CFile
. 我试过的:
- 将文件指针指向文件末尾
- 将指针向后移动 2 个单位
- 检查指针是否指向
\r\n
这是我的代码:
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
只能算作\r\n
一个字符:
对于文本模式文件,回车换行对被计为单个字符。
我很困惑,因为文件指针显然仍然算 2 个字符,但我不能同时得到它们。有什么方法可以用 CFile 检查文件末尾的换行符吗?