バイナリ形式で変数値をファイルに保存する方法バイナリ形式のファイルは変数の値をそのままベタで保存するため、scanfの時のような「これはうまく解析されるかな?」といった心配事がありません。ただし次の点には注意してください。
/*
* c:\\work\data2.bin というファイルに変数の値が保存されます。
*/
#include <stdio.h>#define FILENAME "c:\\work\\data2.bin"
int main()
{
char data1 = 100;
int data2 = 200;
FILE *fp; /* ファイル操作で使用する変数 */
/* ファイルを書き込み用にバイナリ形式で開く */
fp = fopen( FILENAME , "wb" );/* ファイルが正常に開けたかチェック */
if( !fp ){
printf("ファイルが開けませんでした\n");
return -1;
}/* data1とdata2の内容を保存する */
fwrite( &data1 , sizeof( data1 ) , 1 , fp );
fwrite( &data2 , sizeof( data2 ) , 1 , fp );/* ファイルを閉じる */
fclose( fp );return 0;
}
バイナリ形式のファイルから変数値を読み込む方法
/*
* c:\work\data2.bin というファイルからデータを読み込みます
*/
#include <stdio.h>#define FILENAME "c:\\work\\data2.bin"
int main()
{
char data1;
int data2;
FILE *fp; /* ファイル操作用に使用する変数 *//* ファイルを読み込みようにバイナリ形式で開く */
fp = fopen( FILENAME , "rb" );/* ファイルが正常に開けたかチェックする */
if( !fp ){
printf("ファイルが見つかりませんでした\n");
return -1;
}/* ファイルからデータを読み込む */
fread( &data1 , sizeof( data1 ) , 1 , fp );
fread( &data2 , sizeof( data2 ) , 1 , fp );
/* 読み込んだ結果を表示 */
printf("data1 = %d , data2 = %d\n",data1,data2 );return 0;
}