配列サイズを書き込む方式で配列データの保存をするフラグを使う読み書きの方法は明日紹介します。
/*
* c:\work\data5.bin というファイルが作成されます。
*/
#include <stdio.h>#define FILENAME "c:\\work\\data5.bin"
int data[10] = {0,1,2,3,4,5,6,7,8,9}; /* 保存されるデータ */
int main()
{
FILE *fp = fopen( FILENAME , "wb" ); /* ファイルを開く。エラー処理は省略。 */
int length = sizeof( data ) / sizeof( data[0] );/* 配列サイズを書き込む */
fwrite( &length , sizeof( length ) , 1 , fp );/* 配列本体を書き込む */
fwrite( data , sizeof( data[0] ) , length , fp);/* ファイルを閉じる */
fclose( fp );return 0;
}
配列サイズを書き込む方式で保存されたファイルからデータを読み込む
/*
* c:\work\data5.bin というファイルを使う。
*/
#include <stdio.h>#define FILENAME "c:\\work\\data5.bin"
int data[100]; /* 多めにデータ領域を確保しておく */
int main()
{
FILE *fp = fopen( FILENAME , "rb" ); /* ファイルを開く。エラー処理は省略 */
int length;
int i;/* 配列サイズを読み込む */
fread( &length , sizeof( length ) , 1 , fp );/* 配列本体を読み込む */
fread( data , sizeof( data[0] ) , length , fp );/* ファイルを閉じる */
fclose( fp );/* 読み込んだ内容を表示 */
printf( "length = %d\n",length);
for( i=0 ; i<length ; i++ ){
printf( "data[%d] = %d\n" , i , data[i] );
}return 0;
}