/*★ 構造体のポインタ配列 前田 稔 ★*/ #include #include #include // 成績レコードの定義 typedef struct { short num; char name[18]; short ten1; short ten2; short ten3; } TSeiseki; TSeiseki *seiseki[100]; //Function Prototype int read(char *fname, TSeiseki *p[]); void print(TSeiseki *p[], int cnt); // FILE からレコードを入力して、構造体のポインタ配列に格納する //010 愛知 真唯子   100 100 100 int read(char *fname, TSeiseki *p[]) { FILE *fi; char buf[40]; int i; if (!(fi= fopen(fname, "rb"))) { printf("file open error file name=[%s]\n",fname); return 0; } for(i=0; fread(buf,1,36,fi)>=36; i++) { p[i]= new TSeiseki; p[i]->num= atoi(buf); p[i]->ten1= atoi(buf+22); p[i]->ten2= atoi(buf+26); p[i]->ten3= atoi(buf+30); buf[20]= '\0'; strcpy(p[i]->name,buf+4); } fclose(fi); return i; } // 構造体のポインタ配列に格納されているレコードを表示 void print(TSeiseki *p[], int cnt) { int i; for(i=0; inum,p[i]->name,p[i]->ten1,p[i]->ten2,p[i]->ten3); } } //★ main 関数 void main() { int cnt,i; cnt= read("Seiseki.txt",seiseki); print(seiseki,cnt); for(i=0; i