MFC中输出String类型(内容为01串)出现乱码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中输出String类型(内容为01串)出现乱码相关的知识,希望对你有一定的参考价值。
相关代码如上
程序运行结果是乱码,查了好久也没搞懂为什么
UNICODE模式吧,这个模式下CString其实是WCHAR, 在Format中导入char会出问题。
简单解决方法,在Format之前,用一个临时CString中转一下:
CString tmp;for(...)
...
tmp = charHuffamnTable[Ascii[i].letter];
str.Format(xx,xx,xx,tmp);//charHuffamnTable[Ascii[i].letter] -》 tmp
利用CString赋值的自动编码转换就可以了。
MFC中输出string;
MFC中或你包含的是CString头文件,如果想用cout输出string 类型,则需要先把string类型转换char*型,如上面例子:
#include<iostream>
#include<CString>
using std::cout;
using std::string ;
using std::endl;
main()
{
string a;
a="*******";
char* b=(char*)a.c_str(); //将string类型转为char*
cout<<b<<endl;
}
以上是关于MFC中输出String类型(内容为01串)出现乱码的主要内容,如果未能解决你的问题,请参考以下文章