如果在VS2008中已经选择了Unicode,那么可以完全按照下列方法来做CStdioFile的读取与写入读取:
关键:
TCHAR szFilePath[MAX_PATH + 1];
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(_tcsrchr(szFilePath, _T('\\')))[0] = 0;//删除文件名,只获得路径
CString sFilePath = szFilePath + CString("\\设置.txt");
CStdioFile fSet;
fSet.Open(sFilePath,CFile::modeReadWrite);
fSet.ReadString(sSpaceKeyCount);//读取行道sSpaceKeyCount
写入
TCHAR szFilePath[MAX_PATH + 1];
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(_tcsrchr(szFilePath, _T('\\')))[0] = 0;//删除文件名,只获得路径
CString sFilePath = szFilePath + CString("\\设置.txt");
CStdioFile fSet;
fSet.Open(sFilePath,CFile::modeReadWrite);
setlocale( LC_CTYPE, "chs" );//关键语句,设置了本地化信息才能正确写入。
CString sSpaceKeyCount;
sSpaceKeyCount.Format(_T("%d"),m_SpaceKeyCount);
fSet.WriteString(sSpaceKeyCount);
fSet.Close();
关键:
1、通过下列两句获得程序文件所在路径
GetModuleFileName(NULL, szFilePath, MAX_PATH);
(_tcsrchr(szFilePath, _T('\\')))[0] = 0;//删除文件名,只获得路径
2、读取文本文件时无需考虑编码是否为Unicode,但是写入时必须要使用setlocale(LC_CTYPE,“chs”)设置为中文,切记切记。