如何输出CHAR,能不乱码 30
intkey=0x00;unsignedcharcmd[43];memcpy(cmd,"\x10\x23\x12\x12\x12\x12\x12",7);memcpy(c...
int key = 0x00;
unsigned char cmd[43];
memcpy(cmd,"\x10\x23\x12\x12\x12\x12\x12",7);
memcpy(cmd+7,&key,8);
printf("%s",cmd);
cout<<endl;
cout<<cmd<<endl;
我怎么才能输出我输入的那些字符呢?为什么输出都是乱码?%s,%d,%c都不行
我之前7个字节不关心,我关心的是0X00进去出来的是什么,可是不管怎么样都看不到 展开
unsigned char cmd[43];
memcpy(cmd,"\x10\x23\x12\x12\x12\x12\x12",7);
memcpy(cmd+7,&key,8);
printf("%s",cmd);
cout<<endl;
cout<<cmd<<endl;
我怎么才能输出我输入的那些字符呢?为什么输出都是乱码?%s,%d,%c都不行
我之前7个字节不关心,我关心的是0X00进去出来的是什么,可是不管怎么样都看不到 展开
展开全部
这些都是不可见字符, 仔细查看ascii码表,
0x23 是'#'
其他都是不可见
\x10是换行符,“%s”到该字符的时候会自动结束,你可以逐个输出,这样就可以看见了
回答者: taohua300
扯淡... c string到\0才会自动结束, \x0a 换行而已
\x10 是不可见字符不是换行
0x23 是'#'
其他都是不可见
\x10是换行符,“%s”到该字符的时候会自动结束,你可以逐个输出,这样就可以看见了
回答者: taohua300
扯淡... c string到\0才会自动结束, \x0a 换行而已
\x10 是不可见字符不是换行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
\x10是换行符,“%s”到该字符的时候会自动结束,你可以逐个输出,这样就可以看见了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <iostream.h>
#include <string.h>
void main()
{
int key = 0x00;
int i=0;
unsigned char cmd[43];
memcpy(cmd,"\x10\x23\x12\x12\x12\x12\x12",7);
memcpy(cmd+7,&key,8);
cout<<endl;
while(cmd[i])
{
printf("%d",cmd[i]);
i++;
}
}
#include <iostream.h>
#include <string.h>
void main()
{
int key = 0x00;
int i=0;
unsigned char cmd[43];
memcpy(cmd,"\x10\x23\x12\x12\x12\x12\x12",7);
memcpy(cmd+7,&key,8);
cout<<endl;
while(cmd[i])
{
printf("%d",cmd[i]);
i++;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询