#include "mainwindow.h"
#include "qdebug.h"
#include <QApplication>
#include <QDataStream>
#include <qfile.h>
struct Student
{
QString name;
int age;
double score;
int nlist;
float y;
QList<QString> list;
friend QDataStream &operator<<(QDataStream &stream, const Student &stu)
{
QString y1 = QString("%1").arg(stu.y);
stream << stu.name << stu.age << stu.score << stu.nlist << y1;
foreach (QString a, stu.list) {
stream << a;
}
return stream;
}
friend QDataStream &operator>>(QDataStream &stream, Student &stu)
{
QString y1;
stream >> stu.name >> stu.age >> stu.score >> stu.nlist >> y1;
qDebug() << y1;
QList<QString> lis;
for (int i = 0; i < stu.nlist; i++) {
QString st;
stream >> st;
lis.append(st);
}
stu.list = lis;
stu.y = y1.toDouble();
return stream;
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// MainWindow w;
// w.show();
// QMap<QString, QString> X;
// X.insert("S", "W");
// int h = 1;
QList<QString> test;
test.append("2");
test.append("wo");
Student stu1;
stu1.age = 22;
stu1.name = "ykq";
stu1.score = 1.3;
stu1.list = test;
stu1.nlist = 2;
stu1.y = 9.2;
QByteArray x;
QDataStream ds1(&x, QIODevice::Append);
ds1 << stu1;
QDataStream ds(&x, QIODevice::ReadOnly);
Student stu;
ds >> stu;
return a.exec();
}