如果單獨用CStdioFile 來讀取中文文件的話會出現(xiàn)亂碼的問題。
解決方法如下
包含頭文件:
#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("物理內存總數(shù):%dM\t可用物理內存數(shù):%dM\t虛擬內存總數(shù):%dM\t可用虛擬內存數(shù):%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();
}