如果单独用CStdioFile 来读取中文文件的话会出现乱码的问题。
解决方法如下
包含头文件:
#include <locale.h>
读文件:
char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );
setlocale( LC_CTYPE, "chs" );
CStdioFile file;
file.Open(L"乱码.txt",CStdioFile::modeRead);
CString strFamilyName;
file.ReadString(strFamilyName);
setlocale( LC_CTYPE, old_locale );
free( old_locale );
写文件
setlocale( LC_CTYPE, ("chs"));
CString strFile;
CString strLine;
CStdioFile sf;
strFile = L"中文.TXT";
if(sf.Open(strFile,CFile::modeCreate | CFile::modeReadWrite))
{
MEMORYSTATUS ms = {0};
ms.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&ms);
strLine.Format(_T("物理内存总数:%dM\t可用物理内存数:%dM\t虚拟内存总数:%dM\t可用虚拟内存数:%dM\t内存占用百分比:%d/%%\n"),
ms.dwTotalPhys/1024/1024,ms.dwAvailPhys/1024/1024,ms.dwTotalVirtual/1024/1024,ms.dwAvailVirtual/1024/1024,ms.dwMemoryLoad);
sf.WriteString(strLine);
sf.Close();
}
联系客服