typedef struct _st_record {
char szName[60];
char nGender; /* 0--male, 1--female */
unsigned char nAge;
short nBirthYear;
char szDescription[150];
} RRECORD;
文件中有若干条以下列结构体形式保存的数据,把它们全部读取出来,按照szName升序排序后,以文字形式保存到文本文件中(所有字符串都是ASCII字符,不考虑UTF8格式)。typedef struct _st_record {
char szName[60];
char nGender; /* 0--male, 1--female */
unsigned char nAge;
short nBirthYear;
char szDescription[150];
} RRECORD;
原文件是二进制文件吗?
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 rec[1000],temp;
int n = 0,i=0,j=0;
FILE *fp = fopen("a.dat","rb+");
FILE *fp1 = fopen("b.txt","w");
while(!feof(fp))
{
fread(&rec[n],sizeof(RECORD),1,fp);
n++;
}
fclose(fp);
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(strcmp(rec[j].szName,rec[j+1].szName) > 0)
{
temp = rec[j];
rec[j] = rec[j+1];
rec[j+1] = temp;
}
}
}
for(i=0;i<n;i++)
{
fprintf(fp,"%s\t%c\t%d\t%d\t%s\n",rec[i].szName,rec[i].nGender,rec[i].nAge,rec[i].nBirthYear,rec[i].szDescription);
}
fclose(fp1);
return 0 ;
}