ファイル名 | 説明 |
---|---|
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); } } |