C++中,char bytes[]数组存储的是16进制的数据,如何以字符串格式打印输出
时间: 2024-03-11 16:51:43 浏览: 69
如果char bytes[]数组存储的是16进制数据的字符串表示,可以直接使用cout输出数组即可。
例如,如果bytes[]数组存储的是"0x1234"这个字符串表示的16进制数据,可以使用以下代码将其以字符串格式打印输出:
```c++
#include <iostream>
using namespace std;
int main()
{
char bytes[] = "0x1234";
cout << bytes << endl;
return 0;
}
```
如果char bytes[]数组存储的是实际的16进制数据,可以使用stringstream流对象将其转换为字符串格式,再打印输出。
例如,如果bytes[]数组存储的是实际的16进制数据0x1234,可以使用以下代码将其以字符串格式打印输出:
```c++
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
char bytes[] = { 0x12, 0x34 };
int len = sizeof(bytes) / sizeof(bytes[0]);
stringstream ss;
for (int i = 0; i < len; i++)
{
ss << hex << (int)(unsigned char)bytes[i];
}
string str = ss.str();
cout << str << endl;
return 0;
}
```
上述代码中,使用stringstream流对象将数组中的每个元素转换为16进制字符串,最终将所有字符串拼接起来得到完整的16进制字符串,再以字符串格式打印输出。
阅读全文