因为CFile类默认是英文写入文件,所以如果不设置的话是不会在文件中写入中文的。
需要进行以下设置:
//需加头文件
#include <locale>
//确保能读写中文
TCHAR* old_locale = _tcsdup( _tsetlocale(LC_CTYPE,NULL) );
_tsetlocale( LC_CTYPE, _T("chs"));
//在CFile创建对象之前
**********************************************************************************************************************************
//**假设的中间内容**
CStdioFile fTxtFile( strfileRoad, CFile::modeCreate|CFile::typeText|CFile::modeReadWrite );
//(写入的文件路径, 没有就新创造| 文本模式| 可读可写模式)
// 这是创建对象同时初始化
fTxtFile.WriteString( _T("点胶位文件\n\n") );
fTxtFile.WriteString(_T("序号\t 名称\t X轴\t Y轴\t 速度\t 加速度\t 终点速度\t 延时时间\t 点类型\t 运动模板\t 备注\t\n\n") );
while( p ){
str.Format( _T("%d\t %s\t %d\t %d\t %f\t %f\t %f\t %d\t %d\t %d\t %s\n"),p->data.iOrdinalNum, p->data.strSymbolName, p->data.iPluX,
p->data.iPluY, p->data.dTarVel, p->data.dTarAcc, p->data.dTerminalVel, p->data.iDelayTime, p->data.iPointType,
p->data.iPointModel, p->data.strRemark );
fTxtFile.WriteString( str );
p = p->pNext;
}
*************************************************************************************************************************************
//确保能读写中文功能,注意要在此释放
_tsetlocale( LC_CTYPE, old_locale );
free( old_locale );