请问一个关于sprintf的问题,急!
char buffer[10];
CString temp;
b_MASCII.GetWindowText(temp);
sprintf(buffer, "%x", temp[0]);
如果我在b_MASCII中输入A的话,buffer中的值是显示为A的ASCII码41
但是我把sprintf(buffer, "%x", temp[0]); 换成sprintf(buffer, "%x", temp);就出现很奇怪的结果了
怎么解决呢?我在b_MASCII中输入的 不止一个字符啊?总不能都用sprintf(buffer, "%x", temp[0]); 把?
谢谢
问题点数:50、回复次数:14Top
1 楼dirdirdir3(风)回复于 2005-08-04 15:50:13 得分 15
不能这样用,可以用循环来显示阿:
for(int i=0;i<tmp.GetLength();i++)
{
sprintf(buffer,"%x",temp[i]);
}Top
2 楼lixiaosan(小三)回复于 2005-08-04 15:51:31 得分 15
for(int i=0;i<temp.GetLength();i++)
{
sprintf(buffer, "%x", temp[i]);
}Top
3 楼hagaga()回复于 2005-08-04 15:53:25 得分 0
楼上的
这样也不行啊
结果跟sprintf(buffer, "%x", temp[0]);
是一样的Top
4 楼hagaga()回复于 2005-08-04 15:56:42 得分 0
我调试的时候输入AA只循环一次啊、
这是怎么回事啊?Top
5 楼yzhouen(真的不懂vc)回复于 2005-08-04 15:57:30 得分 0
一楼,二楼的正确,你是其他搞错了Top
6 楼laiyiling(陌生人[MVP])回复于 2005-08-04 15:57:48 得分 0
sprintf(buffer, "%x", temp.GetAt(i));Top
7 楼hagaga()回复于 2005-08-04 16:02:46 得分 0
for(int i=0;i<temp.GetLength();i++)
{
sprintf(buffer, "%x", temp[i]);
}
你这样的话buffer中的值永远是temp[temp.GetLength()-1]的16进制
而不是这一连串的啊Top
8 楼yzhouen(真的不懂vc)回复于 2005-08-04 16:15:36 得分 0
你都能得到单个的了,难道不能把它连起来吗Top
9 楼yzhouen(真的不懂vc)回复于 2005-08-04 16:17:28 得分 10
char buffer[10];
CString temp;
temp="AC";
CString strtest,str;
for(int i=0;i<temp.GetLength();i++)
{
sprintf(buffer, "%x", temp[i]);
strtest.Format("%s",&buffer[0]);
str+=strtest;
}Top
10 楼my_mtx(水木)回复于 2005-08-04 16:30:18 得分 0
sprintf(buffer, "%x", temp[i]);
写成
sprintf(buffer+i* 2 , "%x", temp[i]);Top
11 楼lixiaosan(小三)回复于 2005-08-04 16:35:11 得分 10
char buffer[10];
CString temp;
for(int i=0;i<temp.GetLength();i++)
{
sprintf(buffer, "%c", temp[i]);
int asc = atoi(buffer);
}Top
12 楼lixiaosan(小三)回复于 2005-08-04 17:28:44 得分 0
CString temp;
m_edit.GetWindowText(temp);
for(int i=0;i<temp.GetLength();i++)
{
int asc = (int)temp[i];
}Top
13 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-08-04 18:31:36 得分 0
sprintf(buffer+i* 2 , "%02x", temp[i]);
Top
14 楼51365133(渊海)回复于 2005-08-04 20:41:37 得分 0
#include <iostream.h>
#include <string.h>
int main()
{
char temp[256];
cout<<"请输入要转换的字符:";
cin>>temp;
cout<<"转换后的字符:";
for(int i=0;i<strlen(temp);i++)
cout<<int(temp[i]);
cout<<endl;
return 0;
}Top




