MFC下用CFile类进行文件的写入

因为CFile类默认是英文写入文件,所以如果不设置的话是不会在文件中写入中文的。

需要进行以下设置:

//需加头文件

#include    

    //确保能读写中文
    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 );

 

你可能感兴趣的:(MFC)