fstream 的read 和 write
我想用二进制的方式读写数据:
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
int a[999],b[999];
ofstream ofile;
ifstream ifile;
for(int i=0;i<999;i++) a[i]=i;
ofile.open("c:\\file.data");
ofile.write((char*)a,sizeof(int)*999);
ofile.close();
ifile.open("c:\\file.data");
ifile.read((char*)b,sizeof(int)*999);
for(int i=0;i<999;i++) cout<<b[i]<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
结果显示从的二十几个后就是混乱数字 而且有负数 我想可能是
write 和 read 不能一次执行太多数据 然后我修改了一下:
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
int a[999],b[999];
ifstream ifile;
ofstream ofile;
for(int i=0;i<999;i++) a[i]=i;
ofile.open("c:\\file.data");
for(int i=0;i<999;i++)
ofile.write((char*)(a + i),sizeof(int));
ofile.close();
ifile.open("c:\\file.data");
for(int i=0;i<999;i++)
ifile.read((char*)(b + i),sizeof(int));
for(int i=0;i<999;i++) cout<<b[i]<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
还是不对问题出在哪呢?