我刚刚遇到了以下行为:使用CStdioFile::WriteString
时,它将\n
转换为\r\n
。
仅在将项目转换为Unicode之后,我才注意到代码的早期版本中的这种行为。我想念什么?
我尝试了这段代码:
CStdioFile file;
CFileException fileException;
file.Open(TEXT("c:\\test.txt"), CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive | CFile::typeText, &fileException);
file.WriteString(TEXT("__CR\r"));
file.WriteString(TEXT("__LF\n"));
file.WriteString(TEXT("CRLF\r\n"));
file.WriteString(TEXT("____"));
file.Flush();
file.Close();
现在的结果是:
__CR\r
__LF\r\n //??
CRLF\r\r\n //??
____
最佳答案
我自己才找到答案:这是CFile::typeText
设计的行为。
MSDN documentation指出:
因此,实际上我将模式从CFile::typeBinary
更改为CFile::typeText
,从而引发了另一种行为。对于CFile::typeBinary
,您将不会获得其他回车符。
关于c++ - CStdioFile::WriteString为换行符添加其他回车符吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30374463/