C++寫入和讀取結構體到二進制文件

  • 二進制文件速度快,空間效率高

  • 寫入數據到二進制文件

#include<iostream>
#include<fstream>
using namespace std;
int main()
{// 定義一個結構體struct student{int id;             // 學號char name[20];      // 姓名double score;       // 成績} s1 = {1001, "張三", 90.5}, s2 = {1002, "李四", 80.5};// 將結構體寫入二進制文件ofstream fout("student.dat", ios::binary);if (fout){fout.write((char*)&amp;s1, sizeof(student));fout.write((char*)&amp;s2, sizeof(student));fout.close();}return 0;
}
  • 從二進制文件讀取數據

#include<iostream>
#include<fstream>
using namespace std;
int main()
{// 定義一個結構體struct student{int id;             // 學號char name[20];      // 姓名double score;       // 成績} s;// 從二進制文件中讀取結構體數據ifstream fin("student.dat", ios::binary);if (fin){fin.read((char*)&s, sizeof(student));while (!fin.eof()){cout<< "學號:" << s.id<< ",姓名:" << s.name<< ",成績:" << s.score<< endl;fin.read((char*)&s, sizeof(student));}fin.close();}return 0;
}

注意 結構體必須一致且寫入順序與讀取順序一致

  • 保存vector數據

#include<iostream>
#include<fstream>
#include "Eigen/Core"
using namespace std;int main()
{ofstream fout("test.dat", ios::binary | ios::app | ios::out);vector<Eigen::Vector3f> points;points.resize(100);/** save data*/int num = points.size();fout.write(reinterpret_cast<char*>(&num), sizeof(num));fout.write(reinterpret_cast<char*>(&points[0]), num*sizeof(points[0]));char type[10];string str = "senr";strncpy(type, str.c_str(), sizeof(type));fout.write(reinterpret_cast<char*>(&type), 10);fout.close();return 0;
}

  • 讀取vector數據

#include<iostream>
#include<fstream>
#include "Eigen/Core"
using namespace std;int main()
{ifstream fin("test.dat", ios::binary | ios::in);vector<Eigen::Vector3f> points;int num = 0;fin.read(reinterpret_cast<char*>(&num), sizeof(int));points.resize(num);fin.read(reinterpret_cast<char*>(&points[0]), num*sizeof(points[0]));char type[10];fin.read(reinterpret_cast<char*>(&type), 10);string str(type);fin.close();return 0;
}

對于不定長的數組,需要存儲數據的長度信息,然后獲取數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712981.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712981.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode 2369.檢查數組是否存在有效劃分:動態規劃(DP)

【LetMeFly】2369.檢查數組是否存在有效劃分&#xff1a;動態規劃(DP) 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/check-if-there-is-a-valid-partition-for-the-array/ 給你一個下標從 0 開始的整數數組 nums &#xff0c;你必須將數組劃分為一個或多個 連續 子…

在線ai寫作,讓你隨時隨地創作優質內容

如今的ai技術已經滲透到我們生活的方方面面。其中&#xff0c;AI寫作成為了一個備受關注的領域。如今&#xff0c;我們可以利用在線ai寫作在任何時間、任何地點創作出優質的內容。 傳統的寫作過程需要大量的時間和精力。從構思到寫作再到修改&#xff0c;每一個環節都需要我們投…

Linux進程管理——top字段

目錄 1.top下半部分——進程狀態 2.top常用內部命令 3.top指定 ①top ②top -d 1 ③top -d 1 -p 10126 ④top -d 1 -p 10126,1 4.使用信號控制進程 1.top下半部分——進程狀態 PID&#xff1a;進程號 User&#xff1a;用戶 PR/NI&#xff1a;優先級 VIRT&#xff08…

Helm repo 國內鏡像配置

微軟 http://mirror.azure.cn/kubernetes/charts/ 阿里云 https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts/ 步驟 helm repo add stable http://mirror.azure.cn/kubernetes/charts/ helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/char…

國產軟件很流氓?不,這些國產軟件良心且實用,別讓它們寒心

談及國產軟件&#xff0c;人們常將其與“流氓、捆綁、滿屏廣告”等負面詞匯掛鉤。但真實情況是&#xff0c;仍有許多優質國產軟件在默默耕耘&#xff0c;它們既免費又實用&#xff0c;別讓它們寒了心。 1、Dism Dism是一款專為Windows系統設計的管理優化神器&#xff0c;其開…

ECMAScript 6+ 新特性 ( 六 ) 模塊化

2.17. 模塊化 模塊化是指將一個大的程序文件&#xff0c;拆分成許多小的文件&#xff0c;然后將小文件組合起來。 這樣就可以更清晰和結構化的方式組織代碼 模塊功能主要由兩個命令構成&#xff1a;export 和 import export 命令用于規定模塊的對外接口 ( 公開 , 暴露) im…

PowerShell 詳細介紹

PowerShell 是微軟開發的一款功能強大的命令行工具和腳本語言&#xff0c;它基于 .NET Framework 構建&#xff0c;可以幫助系統管理員和開發者自動化各種系統管理和應用程序開發任務。PowerShell 提供了豐富的命令集和腳本功能&#xff0c;可以輕松地管理 Windows 操作系統、應…

呦呵,阿里云果然是良心云

關注盧松松&#xff0c;會經常給你分享一些我的經驗和觀點。 你聽說了嗎?阿里云全線降價20%&#xff0c;還上了熱搜。2024年一開年&#xff0c;看來阿里云殺紅了眼&#xff0c;云市場即將變天。 現在續費的阿里云主機&#xff0c;續費三年和續費兩年的價錢差不多&#xff0…

更先進的功能,無注意力大模型Eagle7B:基于RWKV,推理成本降低10-100 倍,另一個工具包使得大模型推理性能加速達40倍(附詳細代碼使用舉例)

更先進的功能,無注意力大模型Eagle7B:基于RWKV,推理成本降低10-100 倍,另一個工具包使得大模型推理性能加速達40倍(附詳細代碼使用舉例)。 在 AI 賽道中,與動輒上千億參數的模型相比,最近,小模型開始受到大家的青睞。比如法國 AI 初創公司發布的 Mistral-7B 模型,其…

攝像頭工程師說 Camera - 顏色空間 YUV 與 YCbCr 的區別與聯系(4)

攝像頭工程師說 Camera - 數據格式 YUV 與 YCbCr 的區別與聯系&#xff08;4&#xff09; 概述 上回書咱們說到 攝像頭工程師說 Camera - 數據格式 YUV 格式的存儲&#xff08;3&#xff09; 本節咱們說說YUV 與 YCbCr 兩種色彩空間定義的聯系與區別。 相同點&#xff1a; Y…

MySQL基礎(三)

文章目錄 MySQL基礎&#xff08;三&#xff09;1. 多表查詢1.1 概述1.1.1 數據準備1.1.2 介紹1.1.3 分類 1.2 內連接1.3 外連接1.4 子查詢1.4.1 介紹1.4.2 標量子查詢1.4.3 列子查詢1.4.4 行子查詢1.4.5 表子查詢 1.5 案例 2. 事務2.1 介紹2.2 操作2.3 四大特性 3. 索引3.1 介紹…

Java-常用集合

Jva常用集合 一、Java 集合框架體系二、Collection接口和方法1. List接口List 接口主要實現類&#xff1a;ArrayListList 的實現類之二&#xff1a;LinkedListList 的實現類之三&#xff1a;Vector 2. Set接口Set 主要實現類&#xff1a;HashSetSet 實現類之二&#xff1a;Link…

HCIA-Datacom實驗指導手冊:7 構建簡單 IPv6 網絡

HCIA-Datacom實驗指導手冊&#xff1a;7 構建簡單 IPv6 網絡 一、實驗介紹&#xff1a;二、實驗拓撲&#xff1a;三、實驗目的&#xff1a;四、配置步驟&#xff1a;步驟 1 設備基礎配置設備命名 步驟 2 配置設備及接口 IPv6 功能步驟 3 配置接口的 link-local 地址&#xff0c…

《C++進階--10.多態》

目錄 10. 多態 10.1 多態的基本概念 10.2 多態案例一-計算器類 10.3 純虛函數和抽象類 10.4 多態案例二-制作飲品 10.5 虛析構和純虛析構 10.6 多態案例三-電腦組裝 10. 多態 10.1 多態的基本概念 多態是C面向對象三大特性之一 多態分為兩類 靜態多態: 函數重載 和 運算…

全網爆火的 MBTI 測試,是隱藏的割韭菜工具?

小伙伴們&#xff0c;誰能想到&#xff0c;作為一名沖浪老手&#xff0c;果子在網上又被騙了。 事情是這樣的&#xff0c;前幾天&#xff0c;我刷微博&#xff0c;看到一個推薦&#xff0c;大概如下圖&#xff0c;是一個 MBTI 人格測試。 MBTI 測試&#xff0c;果子早就做過了…

UCSF DOCK 分子對接詳細案例(01)- rigid, fixed anchor, flexible dock

歡迎瀏覽我的CSND博客&#xff01; Blockbuater_drug …點擊進入 文章目錄 前言一、操作環境二、研究背景三、受體-配體結構文件準備3.1準備文件夾DOCK_workdir, 下載晶體結構3.1.1 來自濕實驗的受體配體共晶結構&#xff1a;3.1.2 來自深度學習和語言模型推理預測的蛋白結構&a…

Spring Boot整合Kafka

文章目錄 1. 介紹2. Kafka基礎2.1. 安裝KafKakafka集群搭建_kafka交流群-CSDN博客 3. Spring Boot整合Kafka3.1. 引入Kafka依賴3.2.編寫配置文件 4. 生產者&#xff08;produced&#xff09;4.1. 生產者基礎案例(基礎測試) 5. 消費者5.1.消費者基本案例(基礎測試) 6.Kafka常用配…

【LLM RAG】GritLM:統一嵌入和生成的大語言模型淺談

前言 目前&#xff0c;所有基于文本的語言問題都可以歸結為生成問題&#xff0c;并通過單一的LLM來處理。然而&#xff0c;使用嵌入的任務&#xff08;如聚類或檢索&#xff09;在這種視角下往往被忽視了。文本嵌入在許多關鍵的實際應用中扮演著重要角色。如RAG&#xff0c;在…

AIGC下一步:如何用AI再度重構或優化媒體處理?

讓媒資中“沉默的大多數”再次煥發光彩。 鄒娟&#xff5c;演講者 編者按 AIGC時代下&#xff0c;媒體內容生產領域隨著AI的出現也涌現出更多的變化與挑戰。面對AI的巨大沖擊&#xff0c;如何優化或重構媒體內容生產技術架構&#xff1f;在多樣的應用場景中媒體內容生產技術又…

Oracle case when end和decode的區別

Oracle中的CASE WHEN和DECODE都是條件表達式&#xff0c;但它們在某些方面有所不同。 CASE WHEN&#xff1a; CASE WHEN是一個條件表達式&#xff0c;允許您基于條件返回不同的值。它具有以下結構&#xff1a; sql CASE WHEN condition1 THEN result1 WHEN condition2 THE…