我试图将一个非常大的char数组的内容写入硬盘.我有以下数组(实际上它的大小将非常大)我使用数组作为位数组,并在插入指定数量的位后,我必须将其内容复制到另一个数组并写入此副本进入硬盘.然后我将数组的内容分配为0以供进一步使用.
unsigned char bit_table_[ROWS][COLUMNS];
Run Code Online (Sandbox Code Playgroud)
使用ofstream,copy并ostream_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)