QDataStream 无法序列化数据
QDataStream unable to serialize data
我正在尝试按照这里的教程并序列化Qt对象。这是我的代码:
QFile file("/Users/kaustav/Desktop/boo.dat");
if (!file.open(QIODevice::WriteOnly)) {
qDebug() << "Cannot open file for writing: "
<< qPrintable(file.errorString()) << endl; //no error message gets printed
return 0;
}
QDataStream out(&file); // we will serialize the data into the file
out.setVersion(QDataStream::Qt_5_3); //adding this makes no difference
out << QString("the answer is"); // serialize a string
out << (qint32)42;
当我运行这个程序时,文件在我的桌面上创建得很好,但它的大小是0 kB,它是空白的。当然,当我尝试这个时:
QFile file("/Users/kaustav/Desktop/boo.dat");
file.open(QIODevice::ReadOnly);
QDataStream in(&file); // read the data serialized from the file
in.setVersion(QDataStream::Qt_5_3);
QString str;
qint32 w;
in >> str >> w;
我在str
中得到一个空白字符串.我做错了什么?如果有任何帮助,我正在使用基于Qt 5.2.1
的Qt Creator 3.1.1
。
检查调用 open 时是否返回任何错误,并确保在完成文件后使用 file.close() 关闭文件。
当你使用Qt 5时,在保存数据时,你应该使用QSaveFile。
相关文章:
- 如何在C++中序列化结构数据
- 如何使用Python从C++中读取谷物序列化数据
- 在处理网络、二进制数据和序列化时应使用流或容器
- 增强序列化,按基类型加载存档类会产生错误的数据
- 使用 QDataStream 对原始数据进行反序列化
- 在序列化过程中缺少一些数据
- 无法使用提升正确序列化数据
- 将载体和cv :: mat to Disk的存储结构 - C 中的数据序列化
- 我的数据结构的最佳序列化方法
- 分段错误:C++中的结构序列化和 MPI 数据传输
- 使用 reinterpret_cast 序列化和反序列化数据
- 如何将 boost::beast 中的序列化数据转换为字符串,以便我可以以 FIFO 方式处理它?
- static_assert 在使用 boost 反序列化二进制数据时失败"typex::value"失败
- Protofuf 反序列化消息没有数据
- 我们应该序列化 std::chrono::d uration 类还是 P.O.D.(普通旧数据)并且不需要序列化
- 如何隔离派生类的数据(序列化)
- 通过数据序列化的SWIG接口
- QJson数据序列化顺序
- Android/ c++数据序列化
- 将数据序列化到std::streambuf