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

概述
二進制 vs ASCII
二進制寫入
ASCII 寫入
read 和 write 讀寫二進制文件
案例一
案例二
概述
二進制文件不同于文本文件, 它可以用于任何類型的文件 (包括文本文件).
二進制 vs ASCII
對于數值數據, ASCII 形式與二進制形式不同. ASCII 文件直觀, 便于閱讀, 但一般占存儲空間較多, 而且需要花時間轉換. 二進制文件是計算機的內部形式, 節省空間且不需要轉換, 但不能直觀顯示.
對于字符信息, 在內存中是以 ASCII 代碼形式存放, 無論用 ASCII 文件輸出還是用二進制文件輸出, 形式是一樣的.
二進制寫入
#include
1
2
3
4
5
6
7
8
9
10
11
12
13
輸出結果:
ASCII 寫入
將 int x = 12345 寫入文件.
#include
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
案例二
將二進制文件中的數據讀入內存.
#include
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小時內刪除侵權內容。