二进制文件的读写稍微麻烦一些,对二进制文件的读写同样需要打开文件和关闭文件,打开和关闭方式与文本文件相同,只不过需要在打开方式上加上 ios::binary 以指明以二进制方式进行读写。
对于文本文件而言,我们只能用 ofstream 类定义对象用于输出到文件,用 ifstream 类定义对象用于从文件中输入,而对于二进制文件而言,除了可以这么做以外,我们还可以用 fstream 类定义对象既能用于从文件输入,又能输出到文件中。
针对二进制文件的读写,输入输出类中定义了专门的函数 read() 和 write(),这两个都是类的成员函数,它们的函数原型为:
istream & read ( char * buffer, int size );
ostream & write ( const char * buffer, int size );
buffer 是指向内存中的一段存储空间,size 是存储空间的大小,也即需要读写的内容的字节数。
有了这两个用于读写二进制文件的函数,我们通过示例来看一下如何使用这两个函数:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int A[ 3 ][ 10 ] = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 },
{ 1, 2, 3, 4, 7, 7, 7, 7, 7, 7 },
{ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 } };
int B[ 3 ][ 10 ];
int i, j;
for( i = 0; i < 3; i++ )
{
for( j = 0 ; j < 10; j++ )
{
cout << A[ i ][ j ] <<" ";