基于结构体的二进制文件读写

  • 项目介绍
  • 工程创建
  • 结构体的创建
  • 写二进制文件
    • 结果
  • 读二进制文件
    • 结果
  • 参考文献

项目介绍

本次设计是为了提高读写二进制文件的效率,以约定的结构体形式进行读写操作,避免了一个字节一个字节的多次写入读取操作,并且能以特定的结构读取到二进制数据流的文件,即以某种特定的协议进行读写操作。

工程创建

本次是对读写的操作的认识,则创建的工程为控制台应用。

结构体的创建

分别以short、int、long long类型数据进行连续数据100次的顺序写入

#pragma pack(1)   //字节对齐typedef struct
{short b;int c;long long d;
}inputInfo;

写二进制文件

#include <QtCore/QCoreApplication>
#include "inputInfo.h"
#include <QFile>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);int count = 1;  //计数值//初始化结构体inputInfo myInputInfo ={1,2,3};QFile file("test.dat");if (file.open(QIODevice::WriteOnly|QIODevice::Truncate)){while((count++)<=100){file.write((char*)&myInputInfo,14);   //14为结构体的字节长度,可以用sizeof()算出myInputInfo.b += 3;myInputInfo.c += 3;myInputInfo.d += 3;}}file.close();
}

结果

读二进制文件


#include <QtCore/QCoreApplication>
#include "inputInfo.h"
#include <QFile>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//读二进制文件inputInfo myInputInfo;QFile file("test.dat");if (file.open(QIODevice::ReadOnly)){while(!file.atEnd()){file.read((char*)&myInputInfo,14);qDebug()<<myInputInfo.b<<myInputInfo.c<<myInputInfo.d;  //输出调试}}file.close();return a.exec();
}

结果

参考文献

[1] 陆文周. 魅力.实践.发现–QT5开发及实例(第三版)[M]. 电子工业出版社, 2017.

基于结构体的二进制文件读写相关推荐

  1. c语言结构体编辑学生成绩管理,C语言基于结构体的学生信息管理系统实现

    宋福英 摘  要: 中国高校为保证学生信息安全,各分院的学生信息都在一个相对封闭的闭环内共享.中国高校在校生人数逐年递增,给高校的信息管理带来不小压力.C语言兼具高级语言和汇编语言的特点,简洁.紧凑. ...

  2. 学生信息管理系统(C语言实现)——基于结构体和文件

         目录 题目描述 源码详解 完整源码 题目描述 学生信息管理系统用来管理学生信息,学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等.试设计一个学生信息管理系统,其至少 ...

  3. c++ 结构体初始化_单片机C语言 - 基于结构体的面向对象编程技巧

    单片机C语言 - 基于结构体的面向对象编程技巧 一.面向对象 面向对象是软件开发方法,是相对于面向过程来讲的.通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式 ...

  4. C语言项目实战:24点游戏计算器(基于结构体、指针、函数、数组、循环等知识点)

    文章目录 C语言项目实战:24点游戏计算器(基于结构体.指针.函数.数组.循环等知识点) 前言:24点游戏计算器的规则如下 一.项目的创建标 1.选择项目 2.输入项目名称和路径 3.创建头文件Mai ...

  5. 关于结构体数据的读写

    最近在工作中遇到一种直接按照结构体读写数据的情况,之前没有遇到记录下来! 结构体: typedef struct CAMERAPOINT {float point_X;float point_Y;fl ...

  6. C语言 基于结构体的程序设计(PTA)

    一.实验目的 1.掌握C语言中结构体类型的定义和结构体变量的定义和引用. 2.掌握用结构指针传递结构数据的方法. 二.实验内容 1. 计算职工工资 给定N个职员的信息,包括姓名.基本工资.浮动工资和支 ...

  7. C语言文件读写(结构体文件)

    有时候,我们需要将输入的数据存储起来,这时候就需要用到文件,对于C语言而言,文件的读写有多种方式,下面主要是结构体文件的读写,例如student.dat(第一列是学号,第二列是姓名) 20180001 ...

  8. QT 使用数据流方式QDataSteam读写结构体数据

    文章目录 一.QT中保存单个变量到文件中 二.使用memcpy读写结构体数据 一.QT中保存单个变量到文件中 在QT中使用QDateStream进行数据流文件读写,保存数据(QT帮助中的例子). Ex ...

  9. java开发C编译器:结构体的解析和执行

    用java开发C语言编译器 结构体是C语言中,最为复杂的原生数据结构,它把多种原生结构结合在一起,形成一个有特点含义的数据结构,要实现一个完整的C语言编译器或解释器,就必须要拥有对结构体的解析能力,本 ...

最新文章

  1. git config设置用户名_一个神奇的工具,实现多人协作,git常用命令详解
  2. windows无法安装到这个磁盘,windos必须安装在格式化为NTFS的分区
  3. Shodan新手入坑指南
  4. 一门从业4年都没能用上的优化技术
  5. 雷军:小米开启“重新创业” ;Debian GNU/Linux诞生27周年|极客头条
  6. Jquery 1.4.2 animate的BUG
  7. java可不可以写挂_用Java怎么写呀???我怕是java要挂了,太艰难了
  8. Autodesk AutoCAD 2022 产品系列已发布(附下载)
  9. matlab鲍威尔算法,鲍威尔法matlab程序
  10. 读《三体》差点污了我的三观
  11. Java中9种常见的CMS GC问题分析与解决
  12. Win 10 深度隐藏文件夹命令
  13. sort()与拉姆达表达式
  14. 谷歌邮箱无法登录问题
  15. 收藏夹吃灰了:GitHub 上值得收藏的100个精选前端项目!
  16. git Pull Request 是什么意思?
  17. 网络攻击机制和技术发展综述
  18. 蓝牙遥控小车(详细免费教程)
  19. Android手机文件及文件夹目录详解
  20. Androidstudio通过无线连接进行调试

热门文章

  1. c#与java之比较(转自Jack.Wang's home)
  2. 5位数的数字黑洞是多少_每日一题[491]数字黑洞--Kaprekar常数
  3. PMP读书笔记(第6章)
  4. mongoose 通过账号密码连接 Error: Password contains an illegal unescaped character
  5. 西电计算机科学院实践中心,计算机基础教学实验中心
  6. swagger2如何测试单个文件或者多文件上传
  7. bootstrapTable基础操作
  8. Android中设置输入法为数字输入
  9. 实验6 实践课程中的程序
  10. php strpos与strrpos,PHP开发之 strpos stripos strrpos strripos的区别