欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++?二進制文件讀寫方式及示例詳解

 更新時間:2023年04月25日 09:14:23   作者:碼出世界的淡水魚  
這篇文章主要為大家介紹了C++?二進制文件讀寫實現(xiàn)方式及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

C++ 二進制文件讀寫

C++語言提供了使用二進制文件進行數(shù)據(jù)處理的方法,可以讀入和寫出數(shù)據(jù),保留數(shù)據(jù)的二進制格式,而不會受到字符編碼的干擾。這種方法的使用非常靈活,尤其是處理大量數(shù)據(jù)的時候。

二進制文件是由一連串字節(jié)組成的,可以保留數(shù)據(jù)的真實值,而不需要像文本文件那樣以可讀的方式呈現(xiàn)。每個字節(jié)都有一個二進制值,可以存儲各種類型的數(shù)據(jù),如字符、整數(shù)、浮點數(shù)等。因此,相對于文本文件,二進制文件可以更快地讀取、寫入數(shù)據(jù),而且能夠減少磁盤空間的占用。此外,二進制文件還可以用于存儲圖像、聲音、視頻等非文本數(shù)據(jù)。

一、二進制文件的讀寫方式

二進制文件的讀寫方式有兩種:讀入和寫出。讀入時,將二進制數(shù)據(jù)讀入到內存,寫出時,將內存中的數(shù)據(jù)寫入二進制文件。在C++語言中,可以使用兩種標準庫函數(shù)完成文件讀寫操作,分別是fread()和fwrite()函數(shù)。下面我們通過代碼來了解這兩個函數(shù)如何使用。

二、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*)&s1, sizeof(student));
        fout.write((char*)&s2, sizeof(student));
        fout.close();
    }
    return 0;
}

在這個例子中,我們創(chuàng)建了一個叫做student的結構體并初始化了2個結構體數(shù)據(jù)。然后用C++標準庫函數(shù)ofstream打開文件student.dat,并以二進制方式打開,并將結構體寫入到文件中。最后關閉文件。

讀取二進制文件:

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    // 定義一個結構體
    struct student
    {
        int id;             // 學號
        char name[20];      // 姓名
        double score;       // 成績
    } s;
    // 從二進制文件中讀取結構體數(shù)據(jù)
    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;
}

在這個例子中,我們使用了C++標準庫函數(shù)ifstream打開了文件student.dat,并以二進制方式打開,然后使用fin.read()讀取前面寫入的兩條記錄。因為我們知道文件中記錄的數(shù)量,所以我們使用一個while循環(huán),直到文件末尾為止。在每次循環(huán)中,使用cout打印出每個學生的學號、姓名和成績,并使用fin.read()讀取下一條記錄。最后關閉文件。

總結:

以上就是C++中使用二進制文件進行數(shù)據(jù)處理的方法,通過fwrite()和fread()函數(shù)可以方便地進行二進制數(shù)據(jù)的讀寫操作,而使用fstream.h向文件中寫入二進制數(shù)據(jù)則更加靈活。需要注意的是,在讀寫操作時需要注意文件的打開方式,以及指針的位置等問題。

相關文章

  • C++實現(xiàn)LeetCode(29.兩數(shù)相除)

    C++實現(xiàn)LeetCode(29.兩數(shù)相除)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(29.兩數(shù)相除),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • 基于C++詳解數(shù)據(jù)結構(附帶例題)

    基于C++詳解數(shù)據(jù)結構(附帶例題)

    數(shù)據(jù)結構作為每一個IT人不可回避的問題,本文基于C++編寫,下面這篇文章主要給大家介紹了關于數(shù)據(jù)結構的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • C++?LeetCode1827題解最少操作使數(shù)組遞增

    C++?LeetCode1827題解最少操作使數(shù)組遞增

    這篇文章主要為大家介紹了C++?LeetCode1827題解最少操作使數(shù)組遞增示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • C/C++中I/O進階詳解及其作用介紹

    C/C++中I/O進階詳解及其作用介紹

    這篇文章主要介紹了C/C++中I/O進階詳解及其作用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Qt 實現(xiàn)畫線筆鋒效果詳細原理及示例代碼

    Qt 實現(xiàn)畫線筆鋒效果詳細原理及示例代碼

    這篇文章主要介紹了Qt 實現(xiàn)畫線筆鋒效果詳細原理及示例代碼。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • C和C++ const的聲明差異

    C和C++ const的聲明差異

    本文給大家簡單匯總了下C語言的const與C++的const的聲明差異,非常的簡單,也很實用,有需要的小伙伴可以參考下
    2016-03-03
  • C語言數(shù)據(jù)結構詳細解析二叉樹的操作

    C語言數(shù)據(jù)結構詳細解析二叉樹的操作

    二叉樹可以簡單理解為對于一個節(jié)點來說,最多擁有一個上級節(jié)點,同時最多具備左右兩個下級節(jié)點的數(shù)據(jù)結構。本文將詳細介紹一下C++中二叉樹的實現(xiàn)和遍歷,需要的可以參考一下
    2022-04-04
  • C++使用正則表達式的詳細教程

    C++使用正則表達式的詳細教程

    正則表達式是一個非常強大的工具,主要用于字符串匹配,下面這篇文章主要給大家介紹了關于C++使用正則表達式的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • C語言實現(xiàn)最簡單的剪刀石頭布小游戲示例

    C語言實現(xiàn)最簡單的剪刀石頭布小游戲示例

    這篇文章主要介紹了C語言實現(xiàn)最簡單的剪刀石頭布小游戲,涉及C語言數(shù)組、隨機數(shù)與數(shù)值運算等相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • C語言實現(xiàn)多項式的相加

    C語言實現(xiàn)多項式的相加

    這篇文章主要為大家介紹了C語言實現(xiàn)多項式的相加,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評論