qt中怎么把一個(gè)結(jié)構(gòu)體轉(zhuǎn)換為流

qt
小億
184
2023-08-07 23:52:30
欄目: 編程語言

在Qt中,可以使用QDataStream類來將結(jié)構(gòu)體轉(zhuǎn)換為流。以下是一個(gè)示例代碼:

#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函數(shù)將MyStruct結(jié)構(gòu)體轉(zhuǎn)換為QByteArray,byteArrayToStruct函數(shù)將QByteArray轉(zhuǎn)換為MyStruct結(jié)構(gòu)體。

注意,在將結(jié)構(gòu)體轉(zhuǎn)換為流時(shí),需要使用QDataStream對(duì)象,并使用<<運(yùn)算符將結(jié)構(gòu)體的成員寫入流中。在將流轉(zhuǎn)換為結(jié)構(gòu)體時(shí),同樣需要使用QDataStream對(duì)象,并使用>>運(yùn)算符從流中讀取數(shù)據(jù)并賦值給結(jié)構(gòu)體的成員。

0