二進位檔案操作(read、write)

在寫入或讀取檔案時,也可以用read()與write()函式以區塊的方式寫入,這兩個函式通常用二進位模式來操作檔案,函式型態如下,num是寫入資料的位元組數目:
istream &read(char buf, streamsize num);
ostream &write(const char
buf, streamsize num);

下面程式將陣列資料寫入檔案,然後再將資料讀出,.dat檔案格式是我們隨意寫的格式,有沒有寫或名稱為何都不影響結果:

#include <fstream> 
using namespace std;

int main() {
    ofstream fout("test.dat", ios::out | ios::binary);
    if (!fout) {
        return 1;
    }

    int arr[3] = {1,2,3};
    fout.write((char*)arr, sizeof(arr));
    fout.close();

    ifstream fin("test.dat", ios::in | ios::binary);
    if (!fin) {
        return 1;
    }

    int arr2[3] = {0,0,0};
    fin.read((char*)arr2, sizeof(arr2));
    fin.close();

    return 0;
}