如何将数组内容写入硬盘

Joh*_*ohn 2 c c++ arrays io

我试图将一个非常大的char数组的内容写入硬盘.我有以下数组(实际上它的大小将非常大)我使用数组作为位数组,并在插入指定数量的位后,我必须将其内容复制到另一个数组并写入此副本进入硬盘.然后我将数组的内容分配为0以供进一步使用.

unsigned char       bit_table_[ROWS][COLUMNS];
Run Code Online (Sandbox Code Playgroud)

das*_*ght 5

使用ofstream,copyostream_iterator利用STL的力量:

#include <algorithm>
#include <fstream>
#include <iterator>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    unsigned char bit_table_[20][40];
    for (int i = 0 ; i != 20 ; i++)
        for (int j = 0 ; j != 40 ; j++)
            bit_table_[i][j] = i^j;
    ofstream f("c:/temp/bit_table.bin", ios::binary | ios::out);
    unsigned char *buf = &bit_table_[0][0];
    copy(buf, buf+sizeof(bit_table_), ostream_iterator<unsigned char>(f, ""));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)