最近在工作中遇到一种直接按照结构体读写数据的情况,之前没有遇到记录下来!
结构体:

typedef struct CAMERAPOINT {float point_X;float point_Y;float point_Z;
} CameraPoint;

读取文件:(使用的是QT自带的库函数读取的)

    CameraPoint camera_point;QString open_path = QFileDialog::getOpenFileName(this, tr("Open txt"), ".//SaveData",tr("Files (*.dat)"));if (open_path.isEmpty()) {return;}//打开文件QFile path_file(open_path);if (!path_file.open(QIODevice::ReadOnly)) {return;}int i = 0;while (!path_file.atEnd()) {i++;//读取结构体path_file.read((char *)&camera_point, sizeof(CameraPoint));qDebug() << "i:" << i << camera_point.point_X << camera_point.point_Y << camera_point.point_Z;}path_file.close();

写入文件:

    FILE *fp;fp = fopen(".//SaveData.dat", "ab");fwrite(&camera_point, sizeof(CameraPoint), 640, fp);fclose(fp);

自己的理解:
数据存放在结构体开辟的内存空间,存的时候使用取地址符&来将对应地址中的数据根据定义的长度将数据放入。

关于结构体数据的读写相关推荐

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

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

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

    基于结构体的二进制文件读写 项目介绍 工程创建 结构体的创建 写二进制文件 结果 读二进制文件 结果 参考文献 项目介绍 本次设计是为了提高读写二进制文件的效率,以约定的结构体形式进行读写操作,避免了 ...

  3. Arduino EEPROM对结构体数据存储和读取

    Arduino EEPROM对结构体数据存储和读取 以Arduino UNO开发板为例. 注意:该示例不适用于在ESP8266上使用 EEPROM.put()或者 EEPROM.get()来对数据读写 ...

  4. ARM汇编语言实现peek()_ARM汇编之访问C语言结构体数据

    前言 本文的写作目的在于装逼,没有要产生实际价值的意思. 前几天在做编译器的项目,有一个项目团队成员一直在问我ARM汇编能不能读C语言的结构体.我心想,我这生成ARM汇编的代码是用C++写的呀,又不是 ...

  5. C语言经典例71-编写函数输出结构体数据

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 编写input()和output()函数输入,输出5个学生的数据记录. 2 分析 定义结构体,声明结构体数组,再编写函数传入结构体数组指针到 ...

  6. 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )

    文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...

  7. 将结构体数据存储到一段字符串string中

    核心思想 指定一段内存空间存储结构体数据,然后使用一个指针强制类型转化为结构体类型的,就可以使用这个指针操作结构体相关的成员函数和变量 结构体内存只会为定义的变量进行分配内存空间,函数只进行调用,不占 ...

  8. Qt窗口之间传值和结构体数据

    简单明了,看效果+看代码 主窗口向子窗口进行传值和传结构体数据 子窗口向主窗口进行传值和传结构体数据 子窗口界面 主窗口界面 dialog.h #ifndef DIALOG_H #define DIA ...

  9. linux进程内存结构体,Linux下网络编程(3)——进程间通信(IPC),共享内存,传递结构体数据...

    1. 前言 多进程,总有一些交互要做,不可能各自独立. 这里是最简单的例子.一个写入,一个读取. 一个建立共享内存,写入数据. 一个读取共享内存的内容. 2. 简单例子代码 twriter.cpp 代 ...

最新文章

  1. 图像滤镜艺术--编码基础(Photoshop基础变换的代码实现)
  2. 中台不是万能药,关于中台的思考和尝试
  3. 使用CSS属性处理前端开发中长文本造成的内容显示重叠问题
  4. java ee自动生成编码_EE Servlet 3:在Servlet中生成HTML输出
  5. 现代软件工程 作业 结对编程 模板
  6. android 如何 root权限获取,如何获取android手机root权限获取
  7. 计算机网络考试成绩分析报告,成绩分析报告范文_成绩分析总结与反思
  8. 云计算学习笔记005---Hadoop HDFS和MapReduce 架构浅析
  9. 二叉树前序中序后序javascript_详解二叉树遍历(前序、中序、后序、层次遍历、深度优先、广度优先)...
  10. 盘点各大厂商的活体检测服务,哪款更适合应用开发者?
  11. vue+ 高德地图 热力图
  12. 发那科机器人xyz的方向_最全 | 发那科工业机器人示教器详细介绍
  13. OpenCV每日函数 对象追踪模块 Meanshift算法
  14. windows聚焦壁纸不更新_如何解决Win10聚焦锁屏壁纸不自动更新的问题
  15. 基于Struts2和hibernate的WebSocket聊天室的实现教程五:聊天机制
  16. js 多线程Worker
  17. 园区人工智能开启双创模式,“1+N”创新型组织发展成效初显...
  18. MySQL varchar类型可以存储多少个汉字
  19. React深入学习与源码解析笔记
  20. 看这篇C语言基础就够了(2020-04-19)

热门文章

  1. WebService学习总结(三)——使用JDK开发WebService
  2. 关于 HDFS Append
  3. Java文件下载中文名不显示乱码
  4. 持久化数据结构(笔记)
  5. UITableView 编辑和删除行
  6. 做企业:什么都可以外包么
  7. 在两个林间做Exchange邮箱的迁移
  8. 在Silverlight中使用DynamicMethod(动态方法)
  9. 哈希码以及Object.toString()简单理解
  10. es6中的promise解读