![]()
| ファイル名 | 説明 |
|---|---|
| ArrayPtr.cpp | 構造体のポインタ配列 |
// 成績レコードの定義
typedef struct
{ short num;
char name[18];
short ten1;
short ten2;
short ten3;
} TSeiseki;
TSeiseki *seiseki[100];
|
//★ main 関数
void main()
{ int cnt,i;
cnt= read("Seiseki.txt",seiseki);
print(seiseki,cnt);
for(i=0; i<cnt; i++) delete seiseki[i];
}
|
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; i<cnt; i++)
{ printf("\n%4d %-18s %3d %3d %3d",
p[i]->num,p[i]->name,p[i]->ten1,p[i]->ten2,p[i]->ten3);
}
}
|
![]()