int data[100];fread,fwriteは戻り値として正常に読み(書き)込めたデータの個数を返すので、戻り値を 書き込む予定だった個数(3番目の引数。例だとsizeof(data)/sizeof(data[0]) )と比較し、戻り値の方が小さかったらファイルの終端(もしくはエラー)だとして別の処理 に移るということをします。
FILE *fp;fp = fopen( "fname" , "rb" );
:
:
fread( data , sizeof( data[0] ) , sizeof( data )/sizeof( data[0] ) , fp );
:
:
fclose( fp );fp = fopen( "fname" , "wb" );
:
:
fwrite( data , sizeof( data[0] ) , sizeof( data )/sizeof( data[0] ) , fp );
:
:
fclose( fp );
do {
re = fread( data, sizeof( data[0] ) , 1 , fp );
/* なんか処理 */
} while( re == 1 );