最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C/C++中二進制文件&順序讀寫詳解及其作用介紹

 更新時間:2021年09月02日 16:35:18   作者:我是小白呀  
這篇文章主要介紹了C/C++中二進制文件&順序讀寫詳解及其作用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

概述

二進制文件不同于文本文件, 它可以用于任何類型的文件 (包括文本文件).

在這里插入圖片描述

二進制 vs ASCII

對于數(shù)值數(shù)據(jù), ASCII 形式與二進制形式不同. ASCII 文件直觀, 便于閱讀, 但一般占存儲空間較多, 而且需要花時間轉(zhuǎn)換. 二進制文件是計算機的內(nèi)部形式, 節(jié)省空間且不需要轉(zhuǎn)換, 但不能直觀顯示.

對于字符信息, 在內(nèi)存中是以 ASCII 代碼形式存放, 無論用 ASCII 文件輸出還是用二進制文件輸出, 形式是一樣的.

二進制寫入

#include <fstream>
#include <iostream>
using namespace std;

int main() {
    int x = 12345;
    ofstream outfile("binary.txt", ios::binary);

    outfile.write((char*)&x, 2);  // 寫入
    outfile.close();  // 釋放

    return 0;
}

輸出結(jié)果:

在這里插入圖片描述

ASCII 寫入

將 int x = 12345 寫入文件.

#include <fstream>
#include <iostream>
using namespace std;

int main() {
    int x = 12345;
    ofstream outfile("ASCII.txt");
    
    outfile << x << endl;  // 寫入
    outfile.close();  // 釋放

    return 0;
}

輸出結(jié)果:

在這里插入圖片描述

read 和 write 讀寫二進制文件

打開方式:

ofstream a("file1.dat", ios::out | ios::binary);
ifstream b("file2.dat",ios::in | ios::binary);

文件讀寫方式:

istream& read(char *buffer,int len);
ostream& write(const char * buffer,int len);
  • char *buffer 指向內(nèi)存中一段存儲空間
  • int len 是讀寫的字節(jié)數(shù)

例子:

將 p1 指向的空間中 50 個字節(jié)存入文件對象 a:

a.write(p1,50)

從文件對象 b 讀出 30 個字節(jié), 存址指向空間:

b.read(p2,30)

案例一

將數(shù)據(jù)以二進制的形式存放在磁盤中.

#include <fstream>
#include <iostream>
#include "Student.h"
using namespace std;

int main() {
    Student stud[2] = {
            {01, "Little White"},
            {01, "Big White"}
    };

    ofstream outfile("student.dat", ios::binary);
    if(!outfile){
        cerr << "open error"  << endl;
        exit(1);  // 退出程序
    }
    for (int i = 0; i < 2; ++i) {
        outfile.write((char*)&stud[i], sizeof(stud[i]));
    }
    cout << "任務完成, 請查看文件" << endl;
    outfile.close();

    return 0;
}

案例二

將二進制文件中的數(shù)據(jù)讀入內(nèi)存.

#include <fstream>
#include <iostream>
#include "Student.h"
using namespace std;

int main() {
    Student stud[2];

    ifstream infile("student.dat", ios::binary);
    if(!infile){
        cerr << "open error"  << endl;
        exit(1);  // 退出程序
    }

    // 讀取數(shù)據(jù)
    for (int i = 0; i < 2; ++i) {
        infile.read((char*)&stud[i], sizeof(stud[i]));
    }
    infile.close();

    // 顯示數(shù)據(jù)
    for (int i = 0; i < 2; ++i) {
        stud[i].display();
    }

    return 0;
}

到此這篇關于C/C++中二進制文件&順序讀寫詳解及其作用介紹的文章就介紹到這了,更多相關C++二進制&順序讀寫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C/C++字符函數(shù)和字符串函數(shù)示例詳解

    C/C++字符函數(shù)和字符串函數(shù)示例詳解

    這篇文章主要介紹了C/C++字符函數(shù)和字符串函數(shù)的相關資料,包括了字符分類、轉(zhuǎn)換、長度統(tǒng)計、拷貝、追加、比較、受限操作、子串查找、字符串分割及錯誤信息處理等,需要的朋友可以參考下
    2025-06-06
  • C語言課程設計之抽獎系統(tǒng)

    C語言課程設計之抽獎系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言課程設計之抽獎系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言操作符基礎知識圖文詳解

    C語言操作符基礎知識圖文詳解

    這篇文章主要以圖文結(jié)合的方式為大家詳細介紹了C語言位運算基礎知識,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-08-08
  • vs2017智能感知錯誤解決代碼標紅但編譯通過問題

    vs2017智能感知錯誤解決代碼標紅但編譯通過問題

    這篇文章主要介紹了vs2017智能感知錯誤代碼標紅但編譯通過問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • C語言qsort函數(shù)用冒泡排序?qū)崿F(xiàn)過程詳解

    C語言qsort函數(shù)用冒泡排序?qū)崿F(xiàn)過程詳解

    qsort函數(shù)是由C語言提供的標準庫函數(shù), 它的實現(xiàn)思想是快速排序。這篇文章主要介紹了C語言中qsort函數(shù)用法及用冒泡排序?qū)崿F(xiàn)qsort函數(shù)功能,需要的可以參考一下
    2023-02-02
  • C++ explicit構(gòu)造函數(shù)實例解析

    C++ explicit構(gòu)造函數(shù)實例解析

    這篇文章主要介紹了C++ explicit構(gòu)造函數(shù),需要的朋友可以參考下
    2014-07-07
  • C/C++的全緩沖、行緩沖和無緩沖

    C/C++的全緩沖、行緩沖和無緩沖

    這篇文章主要介紹了C/C++的全緩沖、行緩沖和無緩沖的相關知識,幫助大家更好的理解和學習c/c++,感興趣的朋友可以了解下
    2020-08-08
  • C++11 并發(fā)指南之Lock 詳解

    C++11 并發(fā)指南之Lock 詳解

    這篇文章主要介紹了C++11 并發(fā)指南之Lock 詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • C++歸并排序代碼實現(xiàn)示例代碼

    C++歸并排序代碼實現(xiàn)示例代碼

    歸并排序?qū)⒋判驍?shù)組分成兩個子數(shù)組,分別對這兩個子數(shù)組進行排序,然后將排序好的子數(shù)組合并,得到排序后的數(shù)組,這篇文章主要介紹了C++歸并排序代碼實現(xiàn)的相關資料,需要的朋友可以參考下
    2025-08-08
  • 詳解C語言中結(jié)構(gòu)體的自引用和相互引用

    詳解C語言中結(jié)構(gòu)體的自引用和相互引用

    這篇文章主要介紹了C語言中結(jié)構(gòu)體的自引用和相互引用,詳細解析了結(jié)構(gòu)體中指針的指向情況,需要的朋友可以參考下
    2016-04-04

最新評論

偏关县| 泰和县| 齐齐哈尔市| 南城县| 赤水市| 邻水| 尼木县| 兴安县| 上思县| 金华市| 乐山市| 江山市| 青川县| 绍兴县| 新化县| 汝南县| 鹿邑县| 遂溪县| 太和县| 穆棱市| 浦城县| 隆回县| 镇江市| 武穴市| 巫溪县| 南汇区| 莱阳市| 玉树县| 横山县| 喀什市| 巨野县| 高阳县| 修武县| 读书| 南雄市| 莫力| 武城县| 巴中市| 临夏县| 永州市| 甘泉县|