我需要使用CFile
检查文件是否以换行符结束。
我尝试过:
\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文件末尾的换行符?
答案 0 :(得分:0)
我在打开文件时使用CFile::typeBinary
解决了这个问题。
似乎CFile::typeText
做了一些特殊的处理回车换行对(例如填写一个应该是回车的垃圾字符),这在我的案例中是不可取的。