ini文件全部写入时换行符号未写入的问题处理

在做网络通信的配置软件时,遇到了一个问题,取回了文件的内容,存在字符数组中,但是保存时,原来文件中的换行都不见了,文件内容被写在一起。

所处理的对象是ini文件,使用的是MFC的CFile类,如下:

CFile file;
file.Open(_T("zw123.ini"),CFile::modeCreate| CFile::modeWrite);
file.Write(recData , ret);
file.Close();

后来采用MFC的CStdioFile类,ini文件可以被完整保存:

CStdioFile file;
file.Open(_T("zw123.ini"),CFile::modeCreate| CFile::modeWrite);
file.Write(recData , ret);
file.Close();

原因:

      CStdioFile默认是用fopen 打开的C 运行时流式文件,而CFile默认是二进制打开的文件,文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。

你可能感兴趣的:(技术交流)