//写入
QFile file("staff.dat");
if (!file.open(QIODevice::WriteOnly))
{
QMessageBox::warning(this, tr("warning"), tr("Cannot open file for writing:"), QMessageBox::Yes);
return;
}
QDataStream out(&file);
out.setVersion(QDataStream::Qt_5_7);
out << qint32(ui2.tableWidget->rowCount());
for (int i = 0;i < 15;++i)
{
out << sta[i];
}
file.close();
//初始化 读入
QDataStream in(&file);
in.setVersion(QDataStream::Qt_5_7);
qint32 sta_row = 0;
in >> sta_row;
staffClass *sta = new staffClass[sta_row];
//读入数据到类数组
for (int i = 0;i < 2;++i)
{
in >> sta[i];
}
最后查看输出结果发现sta_row成功读到15,sta[0]成功读到所有成员数据,但其他14个对象成员数据都读的是空或是0,不知道哪里出了问题,还请各位能够解答。
此处为这个,i<2只是想测试下
//读入数据到类数组
for (int i = 0;i < sta_row;++i)
{
in >> sta[i];
}
qt 关于二进制文件(类对象)读入的问题
答案:2 悬赏:30 手机版
解决时间 2021-03-01 02:38
- 提问者网友:原来太熟悉了会陌生
- 2021-02-28 11:16
最佳答案
- 五星知识达人网友:十鸦
- 2021-02-28 11:45
首先你得知道这个二进制文件写入时的格式(数据类型) 比如你先写入一个int,然后char[10]; 这样无论是用Qt还是C++,或者是C读取这个文件都是按照字节数据进行读取的 首先读取int的4字节数据,然后在读取10个字符数据就行。
全部回答
- 1楼网友:掌灯师
- 2021-02-28 13:08
搜一下:qt 关于二进制文件(类对象)读入的问题
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯