/* a11-2-1.c */
#include <stdio.h>
#define N 5		/* 人数   */
#define K 5		/* 科目数 */

typedef struct {    /* 成績構造体 */
	int no;           /* 学生番号   */
	char name[20];    /* 氏名       */
	int ten[K];       /* 点数（国語・数学・理科・社会・英語）*/
} Test_record;

int main(void)
{
	FILE *fp;
	Test_record student[N] = 
	{{1, "安部寛之", 76, 82, 87, 93, 88},
	 {2, "内山理香", 54, 66, 71, 64, 76},
	 {3, "小田裕一", 93, 45, 63, 97, 96},
	 {4, "後藤美希", 81, 88, 72, 84, 78},
	 {5, "柴崎ユウ", 58, 61, 77, 56, 88}};
	Test_record read[N];
	int i, j;

	/* テキストファイルのオープン */
	if((fp = fopen("txt2.dat", "w+")) == NULL) {
		printf("ファイルがオープンできません\n");
		return 1;
	}
	/* テキストファイルへの出力 */
	for (i = 0; i < N; i++) {
		fprintf(fp, "%d %s ", student[i].no, student[i].name);
		for (j = 0; j < K; j++) {
			fprintf(fp, "%d ", student[i].ten[j]);
		}
		fprintf(fp, "\n");
	}
	/* テキストファイルからの入力 */
	fseek(fp, 0L, SEEK_SET);
	for (i = 0; i < N; i++) {
		fscanf(fp, "%d%s", &read[i].no, read[i].name);
		for (j = 0; j < K; j++) {
			fscanf(fp, "%d", &read[i].ten[j]);
		}
	}
	/* 入力の確認 */
	for (i = 0; i < N; i++) {
		printf("%d %s ", read[i].no, read[i].name);
		for (j = 0; j < K; j++) {
			printf("%d ", read[i].ten[j]);
		}
		printf("\n");
	}

	fclose(fp);

	return 0;
}
