问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果
将图中下标操作改为指针如rec,rec【i+1】改为*rec,rec++,并加入识别male 和female操作
typedef struct _st_record {
char szName[60];
char nGender; /0--male, 1--female/
unsigned char nAge;
short nBirthYear;
char szDescription[150];
} RECORD;
int main()
{
RECORD *pRec = NULL,temp;
int n = 0, i = 0, j = 0;
FILE *rp = fopen("C:\wenjianxin\data .dat.dat", "rb+");
FILE *wp = fopen("C:\wenjianxin\wenjian. txt.txt", "w");
RECORD r;
while (!feof(rp))
{
fread(&r, sizeof(RECORD), 1, rp);
n++;
}
pRec = (RECORD *) malloc(sizeof(RECORD) * n);
memset (pRec,0,sizeof(RECORD) * n);
fseek(rp, 0, SEEK_SET);
while (!feof(rp))
{
fread(&pRec, sizeof(RECORD), 1, rp);
i++;
}
fclose(rp);
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (strcmp(pRec[j].szName, pRec[j + 1].szName) > 0)
{
temp = pRec[j];
pRec[j] = pRec[j + 1];
pRec[j + 1] = temp;
}
}
}
for (i = 0; i < n; i++)
{
fprintf(wp, "%s\t%s\t%d\t%d\t%s\n", pRec[i].szName, pRec[i].nGender , pRec[i].nAge, pRec[i].nBirthYear,
pRec[i].szDescription);
}
fclose(wp);
free(pRec);
return 0;
}