MFC 十六进制以字符串形式直接输出

MFC 十六进制以字符串形式直接输出,第1张

#假设收到的数据数组 byte dat[100]; 数据长度 int num
CString str, tem;
for(int i= 0; i < num; i++)
{
temFormat("%02x ", dat[i]);
str+= tem;
}
把str显示到 Edit就行

你可以这样,先定义两个个CString对象,在构造函数中赋空值,分别用于存储输入的字符串,将输入的编辑框关联一个CStringl类型的变量然后提取输入的字符的字符格式化到一个CString对象中,做法是
GetDlgItem(输入编辑框的ID)->GetWindowText(CString对象1);
CString2+=CString1;
然后,用GetDlgItem(输出编辑框的ID)->SetWindowText(CString对象2);

就算你把unicode写进去了,读出来还是乱码。txt文件只支持ascii。
所以,你要先把unicode转成ascii,然后写到文件。
转换方法:
//
change
unicode
to
multibyte
class
Chars
{
public:
Chars(const
CString
&str)
{
int
length=WideCharToMultiByte(CP_ACP,0,str,-1,NULL,0,NULL,FALSE);
ch=new
char[length+1];
WideCharToMultiByte(CP_ACP,0,str,-1,ch,length,NULL,FALSE);
}
char
GetChars()
{
return
ch;
}
~Chars()
{
delete
ch;
}
private:
char
ch;
};

输出到哪里啊??如果只是输出到一个编辑框里的话,就给相应的编辑框加成员变量,就是那个右击对话框-》classwizard在里面添加成员变量。把数组付给这个变量以后用UpdateData(FALSE)就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13348918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-19
下一篇 2023-07-19

发表评论

登录后才能评论

评论列表(0条)

保存