qt char *传进来的二进制流 如何打印出来
时间: 2023-11-29 12:03:47 浏览: 39
如果你想将二进制流以字符串的形式打印出来,你可以利用 C++ 中的 stringstream 类型来实现。
下面是一个示例代码:
```cpp
#include <iostream>
#include <sstream>
#include <cstring>
void printBinaryStream(const char* binaryStream, size_t length) {
std::stringstream ss;
for (size_t i = 0; i < length; ++i) {
ss << std::hex << (int)binaryStream[i] << " ";
}
std::cout << ss.str() << std::endl;
}
int main() {
char binaryStream[] = {0x01, 0x02, 0x03, 0x04, 0x05};
printBinaryStream(binaryStream, sizeof(binaryStream));
return 0;
}
```
在上面的示例代码中,我们定义了一个函数 `printBinaryStream`,该函数接受一个指向二进制流的指针和二进制流的长度,然后将其转化为十六进制字符串并打印出来。
相关问题
qt char *传进来的二进制流 如何打印显示出来 c++
如果你想将二进制流以字符的形式打印出来,你可以使用 C++ 中的循环将二进制流中的每个字符逐一打印出来。
下面是一个示例代码:
```cpp
#include <iostream>
#include <cstring>
void printBinaryStream(const char* binaryStream, size_t length) {
for (size_t i = 0; i < length; ++i) {
std::cout << binaryStream[i] << " ";
}
std::cout << std::endl;
}
int main() {
char binaryStream[] = {0x48, 0x65, 0x6c, 0x6c, 0x6f};
printBinaryStream(binaryStream, sizeof(binaryStream));
return 0;
}
```
在上面的示例代码中,我们定义了一个函数 `printBinaryStream`,该函数接受一个指向二进制流的指针和二进制流的长度,然后将其逐一打印出来。在这个示例中,我们打印的是 ASCII 码对应的字符,因此可以看到输出结果是 "Hello"。如果你想输出的是二进制数据,可以将输出语句修改为 `std::cout << std::hex << (int)binaryStream[i] << " ";`。
qt 将二进制流转成char*
可以使用 QByteArray 类来将二进制流转换为 char*。
示例代码如下:
```cpp
QByteArray byteArray; // 二进制流
char* charArray = byteArray.data(); // 转换为 char*
```
注意:转换后的 char* 指向的是 QByteArray 内部的数据,不要在转换后手动释放内存,否则可能导致程序崩溃。如果需要修改转换后的数据,应该使用 QByteArray 的相关函数进行操作。