C++ 二進制文件 & 順序讀寫

      網友投稿 936 2025-04-01

      C++ 二進制文件 & 順序讀寫


      概述

      二進制 vs ASCII

      二進制寫入

      ASCII 寫入

      read 和 write 讀寫二進制文件

      案例一

      案例二

      概述

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

      二進制 vs ASCII

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

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

      二進制寫入

      #include #include using namespace std; int main() { int x = 12345; ofstream outfile("binary.txt", ios::binary); outfile.write((char*)&x, 2); // 寫入 outfile.close(); // 釋放 return 0; }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      輸出結果:

      ASCII 寫入

      將 int x = 12345 寫入文件.

      #include #include using namespace std; int main() { int x = 12345; ofstream outfile("ASCII.txt"); outfile << x << endl; // 寫入 outfile.close(); // 釋放 return 0; }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      輸出結果:

      read 和 write 讀寫二進制文件

      打開方式:

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

      1

      2

      文件讀寫方式:

      istream& read(char *buffer,int len); ostream& write(const char * buffer,int len);

      1

      2

      char *buffer 指向內存中一段存儲空間

      int len 是讀寫的字節數

      例子:

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

      a.write(p1,50)

      1

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

      b.read(p2,30)

      1

      案例一

      將數據以二進制的形式存放在磁盤中.

      #include #include #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; }

      1

      2

      3

      4

      5

      6

      7

      8

      C++ 二進制文件 &amp; 順序讀寫

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      案例二

      將二進制文件中的數據讀入內存.

      #include #include #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); // 退出程序 } // 讀取數據 for (int i = 0; i < 2; ++i) { infile.read((char*)&stud[i], sizeof(stud[i])); } infile.close(); // 顯示數據 for (int i = 0; i < 2; ++i) { stud[i].display(); } return 0; }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      C++

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel電子表格保存后格式消失(excel保存后表格格式不見了)
      下一篇:如何配置NFS?
      相關文章
      亚洲真人日本在线| 国产成人亚洲精品播放器下载| 激情小说亚洲色图| 亚洲 日韩 色 图网站| 亚洲免费视频网址| 亚洲免费在线观看视频| 亚洲另类古典武侠| 亚洲综合色7777情网站777| 亚洲欧洲自拍拍偷午夜色| 亚洲毛片无码专区亚洲乱| 亚洲精品美女久久久久| 亚洲日本在线免费观看| 亚洲一级免费毛片| 亚洲色精品VR一区区三区| 亚洲成人激情小说| 亚洲精品成a人在线观看夫| 亚洲a∨国产av综合av下载| 国产精品自拍亚洲| 国产成人毛片亚洲精品| 亚洲中文久久精品无码ww16| 国产V亚洲V天堂A无码| 久久精品国产亚洲av麻豆| 久久香蕉国产线看观看亚洲片| 久久久久亚洲AV无码专区首| 亚洲精品无码不卡| 亚洲欧洲日产国码www| 精品日韩99亚洲的在线发布| 亚洲乱亚洲乱妇无码| 色天使色婷婷在线影院亚洲| 亚洲精品国产日韩无码AV永久免费网 | 国产精品亚洲精品爽爽| 亚洲国产V高清在线观看| 久久精品亚洲男人的天堂| 亚洲熟妇无码AV在线播放| 亚洲AV第一页国产精品| 亚洲国产成人久久99精品| 亚洲精品乱码久久久久久蜜桃图片| 无码国产亚洲日韩国精品视频一区二区三区 | 亚洲日本韩国在线| 日韩亚洲人成在线综合日本| 亚洲高清美女一区二区三区|