34
#include "stdafx.h"
#include "stdafx.h"
#include <math.h>
#pragma warning(disable:4996)
struct Person {
char name[20];
int age;
char address[20];
};
int _tmain()
{const int max_lines = 100;
const char file_name[] = "z:\\PersonData.bin";
struct Person a[max_lines];
FILE *fp;
int n;
int i;
int ch;
struct Person orig[3] = { {"kaneko", 38, "hazozaki"}, {"ken",
20, "kaizuka"}, {"mike", 30, "tenjin" } };
printf( "書きます.ファイル名は %s\n", file_name );
// データファイル書き込み
fp = fopen( file_name, "w" );
if ( fp == NULL ) {
fprintf( stderr, "ファイル %s のオープンに失敗しました" );
return -1;
}
// 書き出すのは3個(i = 0, 1, 2)
for ( i = 0; i < 3; i++ ) {
fwrite( &(orig[i]), sizeof(struct Person), 1, fp );
}
fclose( fp );
printf( "読みます.ファイル名は %s\n", file_name );
// データファイル読み出し
fp = fopen( file_name, "r" );
if ( fp == NULL ) {
fprintf( stderr, "ファイル %s のオープンに失敗しました" );
return -1;
}
n = 0;
while( 1 ) {
if ( ( fread( &(a[n]), sizeof(struct Person), 1, fp ) == 0 )
|| ( n >= max_lines ) ) {
break;
}
n = n + 1;
}
fclose( fp );
// 画面表示
for( i=0; i<n; i++ ) {
printf( "name: %s, age: %d, address: %s\n",
a[i].name, a[i].age, a[i].address );
}
printf( "Enter キーを1,2回押してください. プログラムを終了します\n");
ch = getchar();
ch = getchar();
return 0;
}
最初は書き込み
次は読み出し