首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

写入TXT文件的是乱码解决思路

2012-03-12 
写入TXT文件的是乱码int wzstrlen(str1)fp1fopen(F32_ShowSystime,a+)fwrite(&str1,wz,1,fp1)fclos

写入TXT文件的是乱码
int wz=strlen(str1);
fp1=fopen(F32_ShowSystime,"a+");
fwrite(&str1,wz,1,fp1);
fclose(fp1);
其中F32_ShowSystime是文件的路径,str1是一个CString类型的变量,已赋值。但是,打开这个TXT文件,里面显示的是乱码
小弟是一个菜鸟,向各位大虾求教。

[解决办法]
fwrite(&str1,wz,1,fp1);
改成:
fwrite((LPCTSTR)str1,wz,1,fp1);
[解决办法]
估计是UNICODE引起的

C/C++ code
CStringA str2(str1);int wz=strlen(str2);fp1=fopen(F32_ShowSystime,"a+");fwrite((LPCSTR)str2,wz,1,fp1);fclose(fp1);
[解决办法]
C/C++ code
FILE *pFile=fopen("1.txt","w");    char buf[22]="http://www.sunxin.org";    buf[21] = '\0';    fwrite(buf,1,22,pFile);
[解决办法]
下个HexEdit软件,用这个软件打开文本
[解决办法]
探讨

引用:
fwrite(&str1,wz,1,fp1);
改成:
fwrite((LPCTSTR)str1,wz,1,fp1);

按照这样试了一下,还是乱码

[解决办法]
fwrite(&str1,wz,1,fp1);
改为
fwrite(str1,wz,1,fp1);
>>按照这样试了一下,还是乱码
有乱码是正常的,有些字符是不可以显示或者不可以读
比如字符串fwrite("\x08\x09\x10",3,1,fd);
写入文件不可以显示所以看似乱码

[解决办法]
写入char类型的吧,不然txt显示的就是乱码,可能跟txt识别的方式有关吧,不认。
====================
哦,理解错了,CString类型你去取地址是不对的,它是MFC的类,而不是内置的变量,CString的实现不是这样的,它的数据没存在它本身的地址上,而是它指向的一个堆空间上
[解决办法]
你的str1是怎么声明的啊

热点排行