我的4字节数据包含ASCII十进制数7,0,0,0,如下所示。
在地址[20]数据c[0][20] =7, c[0][21] =0, c[0][22] =0, c[0][23] =0
处
我不明白为什么我可以通过printf(" s= %s\t\n", s.c_str());
获得任何输出。但是我可以用printf(" s= %d\t\n", (int)c[0][20]);
获得输出7
获取所有4字节打印输出的正确方法是什么?
const char * c[3];
char cs[5];
memcpy(cs, c[0] + 20, 4);
string s (cs,4);
printf(" s= %s\t\n", s.c_str());
printf(" s= %d\t\n", (int)c[0][20]);
最佳答案
尝试:
printf(" s =");
for (int i = 0; i < 4; ++i)
{
printf(" %d ", (int)c[0][20+i]);
}
printf("\n");
关于c++ - 没有得到我的字符串打印输出的ASCII码= 7,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54405205/