MFC txt文件写入

时间:2022-09-21 19:07:49
     使用的是 Unicode 字符集,用的是CStdioFile类,写函数用的是WriteString,写入的是CSting类型,CString里面有中文英文数字,可是到txt里面查看的时候,里面只要写到CString不包含中文的地方,比如说:  
 CStdioFile SFile;
if(SFile.Open(_T("D:\\OK.TXT"), CFile::modeCreate| CFile::modeReadWrite ))
   {
CString saa=_T("4s知道");
        SFile.WriteString(saa);
        SFile.Close();
   }

txt里面就只有4s,    走过路过的帮我看看,还有一定要使用Unicode 字符集,其他的都可以改,看是类使用错误还是别的。。。

7 个解决方案

#1


重新另存为这个TXT,选择:
MFC txt文件写入
然后关闭打开在看

#2


另外你可以CStdioFile::ReadString()在读出来验证一下到底有没有

#3


我遇到过一次,好像是使用类似setlocalmod()方式给解决了,应该是设为中国模式。

#4


用ultraedit之类的软件打开看看txt存的对不对

#5



#include <locale.h>
_tsetlocale(LC_CTYPE, _T("chs"));  

#6


5楼方法可以,还有一种是
CFile SFile;
if(SFile.Open(_T("D:\\OK.TXT"), CFile::modeCreate| CFile::modeReadWrite ))
   {
        CString saa=_T("4s知道");
        USES_CONVERSION;
        char * ss = T2A(saa); 
        SFile.Write(ss,strlen(ss));
        SFile.Close();
   }
谢谢了。。。

#7


6l     +  1
解决了我一天的问题。

#1


重新另存为这个TXT,选择:
MFC txt文件写入
然后关闭打开在看

#2


另外你可以CStdioFile::ReadString()在读出来验证一下到底有没有

#3


我遇到过一次,好像是使用类似setlocalmod()方式给解决了,应该是设为中国模式。

#4


用ultraedit之类的软件打开看看txt存的对不对

#5



#include <locale.h>
_tsetlocale(LC_CTYPE, _T("chs"));  

#6


5楼方法可以,还有一种是
CFile SFile;
if(SFile.Open(_T("D:\\OK.TXT"), CFile::modeCreate| CFile::modeReadWrite ))
   {
        CString saa=_T("4s知道");
        USES_CONVERSION;
        char * ss = T2A(saa); 
        SFile.Write(ss,strlen(ss));
        SFile.Close();
   }
谢谢了。。。

#7


6l     +  1
解决了我一天的问题。