问题标签 [qdatastream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 数据流 Qt 到标准 c++ 代码
我创建了函数 Qt 来读取二进制文件,它可以工作。
[代码]
所以基本上我可以读取二进制文件,使用不同大小的变量来访问文件中的值(因为我知道文件结构的格式)
我的问题是,现在我需要创建与标准 c++ 函数相同或相似的功能。
是否有类似 Qt for C++ 的 DataStream 或者我必须手动将文件加载到缓冲区中,然后读取单个字节,进行按位操作以获得正确的表示长度,然后再显示值或者是否有更简单的方法......
前进的方向是什么...
c++ - 保存和加载 QList归档
我有一个 ContactData 类和一个持有 QList 的 FriendList 类,并且我重载了 << / >> 运算符。
联系人数据.h
联系人数据.cpp
好友列表.h
好友列表.cpp
保存功能
加载函数
它确实将文件保存在所需的方向,但不幸的是,加载给了我一个大小为 0 的空列表。这就是我卡住的地方..
任何人都可以帮忙吗?
qt - 如何序列化自定义对象
我在尝试在磁盘上序列化我的对象时遇到问题。这是一个简化的场景:
我有 ObjectA 提供自己的序列化运算符。它们可以工作,因为我可以将数据保存/加载到文件中。接下来我有 ObjectB 包含 ObjectA 作为数据成员。尝试保存 ObjectB 时出现运行时错误:
QVariant::save: 无法保存类型 279。
我将此代码用于流操作符:
(只需将 A 替换为 B 用于 ObjectB 运算符)
我认为错误出在 ObjectB 序列化实现中,但我不知道如何进行。
c++ - 将 QByteArray 附加到 QDataStream?
我必须QByteArray
用不同的数据填充 a 。所以我正在使用QDataStream
.
但是,我还想将 QByteArray 附加到buffer
.
我错过了什么?
c++ - Qt - 带有重载运算符的 QDataStream<< 用于对象指针(类 *)
我正在尝试使用 QDataStream 读/写我的自定义类。我已经覆盖了 << 和 >> 运算符,它们似乎对普通对象工作正常。但是,当我尝试将指针传递给我的自定义对象时,被覆盖的运算符无法正常工作。
以下是card.h中的相关数据:
这是card.cpp:
如您所见,我都尝试过
和
如果我使用“Card *c”,数据写得很好,但是当我尝试读取时我得到一个 SEGFAULT。如果我使用“Card *&c”,程序甚至不会识别出我已经覆盖了操作符,所以它不会被调用。
我究竟做错了什么?
编辑:
当我读取或写入“卡片”时出现问题,这是在deck.h中定义的QHash
甲板.h:
甲板.cpp:
因为卡片作为指针存储在 QHash 中,所以我不确定我应该如何绕过指针运算符。有没有更好的方法来读/写 QHash 或存储在 QHash 中的 *Card?
编辑:
根据 Marek R 的回答,我寻找了一种避免写卡片的方法*。解决方案是遍历 QHash 并保存每张卡片。
qt - 如何以mp3格式保存数据流?
我正在通过网络接收数据包中的 mp3 文件,并希望将它们以 mp3 格式保存在我的计算机上。我正在用 C++ 编程并使用 Qt Creator 作为 IDE。
更具体地说,我将接收到的数据存储在 QDataStream 对象中,该对象会自动写入它所连接的文件...我需要任何编码还是应该将文件命名为 MyMusic.mp3 就是这样?
提前致谢
qt - Qt QTcpSocket 流式传输
我的应用程序通过QTcpSocket
.
客户:
服务器:
问题是没有任何反应,但调试控制台告诉我:
...但是该QDataStream
对象不允许我设置打开模式!:( 怎么了?
qt - 无法读取 QList从一个文件
我对流运算符>>有疑问。我正在尝试将自定义对象的 QList 保存并加载到文件中。保存例程似乎工作正常,但读取文件会导致崩溃。我准备了一个非常简单的例子。首先是自定义类:
我以这种方式实现了流运算符:
这是save()
函数(m_objectsList
是QList<CustomObject*>
)
这是read()
常规:
应用程序在 operator>> 中 for 循环的条件语句处出现段错误:
item
不可访问。
你能解释一下错误在哪里吗?
很感谢。
c++ - QDataStream 序列化指针
我正在实现一个小接口Qt
。在我目前正在处理的步骤中,我有分数(自定义类)我可以在只能容纳一个分数的码头(再次,自定义类)上移动。
我用这个例子启发了自己(很多):冰箱磁铁。
在这种配置中,被拖动对象的信息通过QByteArray
存储在 mime 数据中,通过 序列化QDataStream
。
我想要一个乐谱,当放在一个被占用的码头上时,使“驻留”乐谱进入他原来的空间。我想我可以通过拥有一个包含其原始 Dock 的地址的属性来做到这一点,但我无法将此指针存储在数据流中。
以下是我的部分代码:
我无法为QDataStream
和 Dock * 重载 << 和 >> 运算符,因为我发现使用指针执行此操作的唯一方法是存储实际数据。但问题是我不想要数据,我只需要指针!
我有一个想法,即使这意味着我必须重新考虑这样做的方式,我很乐意听到。谢谢!
c++ - “plain/text” encodedData 和 QDataStream 到可读的 QString
我想将以下代码段转换为使用“纯/文本”mimetype,而不依赖于 QTextStream
我试图从二进制数据流中应用 Qt 解析字符串中未定义大小的内容
和http://www.qtcentre.org/threads/696-QDataStream-reading-into-QString
但我总是得到一个空字符串或 0。我读到“使用 QDataStream(通过 QTextStream)的唯一缺点是生成的文件是二进制文件(即人类不可读)。” 有没有办法将纯文本的 QDataStream 转换为可读的 QString?
类似于 来自 QDataStream 的 QT QString, 但我想通过循环和 << 运算符(间接方法)从流中读取二进制数据。
http://qt-project.org/doc/qt-5/qdatastream.html#details上的文档
添加在
// 从应用程序外部拖放纯文本是“abcdefg”
假设我在 while 循环之前编写了以下代码:
这相当于
并且while循环崩溃:
错误:0x5dd02907处的异常,代码:0xc0000005:读取访问冲突:0x0,标志= 0x0(第一次机会)
我的纯文本字符串在开头似乎没有长度字节。我可以按原样运行它,但我想知道是否可以提前确定字符串的长度。每当我尝试通过 << 运算符从流中读取数据时,我都不能简单地将其重置为开头。