一、前言
项目中需要在TXT中输出Log信息,将采集到的数值保存到文本文件中,于是应用本文所用到的知识点。
二、编码方式
使用UTF16 小端模式,即文件BOM为 0xff 0xfe
三、代码实现
3.1 文件打开
将文件以
二进制方式进行操作,特别注意,如果文本方式操作的话,是无法使用换行符的。然后将编码方式写到文件头。
fopen_s(&pFile, "Log.txt", //打开文件的名称
"wb+"); // 文件打开方式 如果原来有内容也会销毁
//向文件写数据
fwrite("\xff\xfe", //要输入的文字
1,//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4
strlen("\xff\xfe"), //单元个数 我们也可以直接写5
pFile //我们刚刚获得到的地址
);
3.2 写入
文件写入部分,直接调用函数即可。
tm = CTime::GetCurrentTime();
tmstr = tm.Format("%Y/%m/%d-%X");
str = tmstr + _T("--设备01 ") + _T("温度:")+Temp1+ _T("℃ ")+_T("湿度:")+Humi1+_T("%\r\n");
//fseek(pFile, 0, SEEK_END);
fwrite(str, //要输入的文字
2,//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4
str.GetLength(), //单元个数 我们也可以直接写5
pFile //我们刚刚获得到的地址
);
四、使用CStdioFile
MFC中提供了一个CStdioFile的类型,操作相对于C库方式要简化血多,建议直接使用CStdioFile方式