QDataStream 多余字符的产生原因及消除方法

【问题场景】

从大华人脸相机发送截图请求后,会接收到一系列返回值,将这些返回值组合成一个文件,就可以还原成一张jpg格式的图片。

我用的的是Qt中的QDataStream来组合数据,但是每个reply通过QDataStream 接收后都多了4个字节的数据,经过查询后发现是用“<<”方法添加到QDataStream后会在首4个字节增加QDataStream大小。

【解决方法】:使用writeRawData()写入QDataStream 能够解决这个问题。

问题:QDataStream 使用"<<"方法写入数据,有多余的字符,如16进制表示为“0000 001a”。

解决:QDataStream 使用writeRawData()方法写入数据能够避免多余字节的产生。

QFile file("file.txt");

file.open(QIODevice::WriteOnly);

QDataStream out(&file);   // we will serialize the data into the file

//原代码

//使用操作符输入会使out带有无效字符,输出结果为30

//out << QString("the answer is");   // serialize a string

//更改后的代码

//输出结果为14,没有无效字符

out.writeRawData("the answer is",sizeof("the answer is"));

qDebug()<<"length : "<<file.size();

file.close();

exit(1);

QDataStream 多余字符的产生原因及消除方法相关推荐

  1. 乱码形成原因及其消除方法

    乱码形成原因及其消除方法 2007-06-07 16:57 当我们浏览网页.打开文档或邮件,运行软件时,经常会看到乱码,通常是由于源文件编码,Windows不能正确识别造成的的,也可能是其他原因. 乱 ...

  2. 乱码形成原因及其消除方法大全

    转载于:http://www.souzz.net/html/server/Win/4543_6.html 当我们浏览网页.打开文档或邮件,运行软件时,经常会看到乱码,通常是由于源文件编码,Window ...

  3. Vivado WARNING:Multi-driven net Q with xth driver pin 警告的原因和消除方法

    出现这个警告的原因是很简单的.大多是编写出了下面这样的烂代码: reg a;wire c,d;always@(posedge clk, posedge rst)beginif(rst)a<=0; ...

  4. 利用getchar()消除多余字符数据(主要是“回车”)

    我是这样写的: #include <stdio.h> int main() {     char a,b,c;     char t;     while(scanf("%c%c ...

  5. php删除数组中的空行,php处理文件的思考(去除空行、每行多余字符)

    1.去除空行 $str = file_get_contents('a.txt'); $str = explode(PHP_EOL, $str); //分割为数组,每行为一个数组元素 $str = ar ...

  6. intellij IDEA 报 非法字符 \65279 原因及解决方法

    eclipse创建的项目导入到 intellij IDEA 之后 编译时包 非法字符 '\65279' 问题原因:IDEA对以UTF8编码的文件保存时自动加上了BOM(UTF-8文件签名) 右下显示的 ...

  7. SAP物料主数据创建/修改(MM01/MM02),在 “分类” 页签 输入比较特殊的特征值,例如:希腊字母 “ μ ”,结果却显示 别的英文字符 (例如: “M“)的问题原因及解决方法

    处理方法为付费资源,如果介意,请勿下载 SAP物料主数据创建/修改(MM01/MM02),在 "分类" 页签 输入比较特殊的特征值,例如: 希腊字母 " μ " ...

  8. python怎么去掉视频字幕_python实现去除下载电影和电视剧文件名中的多余字符的方法...

    本文实例讲述了python实现去除下载电影和电视剧文件名中的多余字符的方法,是一个非常实用的技巧,分享给大家供大家参考.具体如下: 有时候我们讨厌下载电影和电视剧文件名中的多余字符(如网址和广告字样) ...

  9. 中文字符乱码的原因及解决办法

    中文字符乱码的原因及解决办法 java的内核是Unicode的,也就是说,在程序处理字符时是用Unicode来表示字符的,但是文件和流的保存方式是使用字节流的.在java的基本数据类型中,char是U ...

最新文章

  1. 计算机科学与导论期末论文题目,★计算机科学与技术导论论文题目计算机科学与技术导论毕业论文题目大全计算机科学与技术导论论文选题参考(3页)-原创力文档...
  2. 大国AI竞赛中国忙赶超,但美国仍主导全球AI芯片设计
  3. linux驱动学习笔记(2.4) scull 脚本scull_init
  4. JavaScript君,请您坦诚相待~~~
  5. 使用ASP.NET Core 3.x 构建 RESTful API - 3.4 内容协商
  6. matplotlib setting zh-hans
  7. chage 用户密码管理
  8. mysql 当前记录集不支持书签_关于使用视图进行分页时出现当前记录集不支持书签的错误解决方法及原因(asp)...
  9. java guava map_使用googled的guava常见ImmutableMap、Multimap、Sets、Optional、Objects及Preconditions检查等用法...
  10. LDA通俗理解LDA主题模型
  11. ASP.NET MVC3 快速入门-第四节 添加一个模型(转)
  12. 在没有主键的情况下定量删除数据!
  13. 深入理解JVM虚拟机(总结篇)
  14. python一般用什么平台好_python哪几个平台好用
  15. 白话空间统计二十四:地理加权回归(一)
  16. ios 博客及论坛整理
  17. vi毕业设计参考文献优秀范例
  18. 700 boost yeezy_公司级Adidas Yeezy Boost 700上脚测评
  19. 提升自己的最好方式是什么呢?
  20. Web2.0的系统架构与六大关键问题

热门文章

  1. C++11 显示类型转换
  2. git detached head
  3. HTML5.1 推荐中 1.5.3. Extensibility 段落翻译
  4. AEAI DP开发统计分析
  5. Django【基础篇】
  6. 从scheduler is shutted down看程序员的英文水平
  7. 不越狱 继续逆向 微信运动
  8. Splay_Tree 模板(区间修改,旋转操作)
  9. 【转】linux时钟jiffies及其相关
  10. JWTToken在线编码生成