qt中怎么把一个结构体转换为流

qt
1061
2023/9/2 23:52:30
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Qt中,可以使用QDataStream类来将结构体转换为流。以下是一个示例代码:

#include <QDataStream>
#include <QByteArray>
struct MyStruct {
int intValue;
QString stringValue;
};
QByteArray structToByteArray(const MyStruct& myStruct) {
QByteArray byteArray;
QDataStream stream(&byteArray, QIODevice::WriteOnly);
stream << myStruct.intValue;
stream << myStruct.stringValue;
return byteArray;
}
MyStruct byteArrayToStruct(const QByteArray& byteArray) {
MyStruct myStruct;
QDataStream stream(byteArray);
stream >> myStruct.intValue;
stream >> myStruct.stringValue;
return myStruct;
}

在上面的示例中,structToByteArray函数将MyStruct结构体转换为QByteArraybyteArrayToStruct函数将QByteArray转换为MyStruct结构体。

注意,在将结构体转换为流时,需要使用QDataStream对象,并使用<<运算符将结构体的成员写入流中。在将流转换为结构体时,同样需要使用QDataStream对象,并使用>>运算符从流中读取数据并赋值给结构体的成员。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: qt打印中文出现乱码如何解决