【发布时间】:2019-04-05 00:45:01
【问题描述】:
我有一些数据类型要写入原始数据文件。我没有使用 QDataStream 因为它会写入一些关于数据的额外信息,比如数据的长度和顺序。我只是想要一个仅包含我写入的字节的文件,并且只会由知道所写入数据类型的正确顺序和大小的人解释。
我正在使用 QFile,写入方法为qint64 QIODevice::write(const QByteArray &byteArray)。
我有几个 uint8_t、uint32_t 和浮点数要写入文件。如何将此数据转换为没有额外字节的 QByteArray?
这是我目前所拥有的:
void FileWriter::writeData(uint8_t status, uint8_t channel, uint32_t ticks, float source0, float source1){
QByteArray dataToWrite;
//some code to add the paramters to the dataToWrite array
this->file.write(dataToWrite);
}
转换为 char 的常规旧样式会给我一个 implicit conversion changes signedness 错误,因此无法正确存储值。
将这些值复制到 QByteArray 以便我可以将其写入文件的正确方法是什么?
【问题讨论】:
标签: c++ qt file serialization memcpy