我有这个结构:
struct Equipe {
char NomEquipe[20];
int Sigle;
char j1[20];
char j2[20];
char j3[20];
char j4[20];
char j5[20];
};
我已经将一些团队存储在具有此功能的文件中
int creerFile1(char *fnom) {
FILE *fp;
struct Equipe newrecord;
fp=fopen(fnom,"a+");
if (!fp) {
printf("Erreur , Fichier Non ouvert!");
return -1;
}
printf("Nom Equipe : \n");
scanf("%s", newrecord.NomEquipe);
printf("Sigle Equipe :\n");
scanf("%d", &newrecord.Sigle);
printf("Nom Joueur 1 : \n");
scanf("%s", newrecord.j1);
printf("Nom Joueur 2 : \n");
scanf("%s", newrecord.j2);
printf("Nom Joueur 3 : \n");
scanf("%s", newrecord.j3);
printf("Nom Joueur 4 : \n");
scanf("%s", newrecord.j4);
printf("Nom Joueur 5 : \n");
scanf("%s", newrecord.j5);
fwrite(&newrecord, sizeof(struct Equipe), 1, fp);
fclose(fp);
return 0;
}
现在我想选择随机团队 所以我只需要选择结构的随机第一条记录,我只是指团队名称!
将这些随机团队存储在一个文件中
这就是我阅读所有结构的方法
int lireFile1(char *fnom) {
FILE *fp;
struct Equipe myrecord;
fp=fopen(fnom,"r");
if (!fp) {
printf("Unable to open file!");
return -1;
}
printf("The following records are in the binary file %s:\n", fnom);
while (fread(&myrecord,sizeof(struct Equipe),1,fp) != NULL) {
printf("%s\n", myrecord.NomEquipe);
printf("%c\n", myrecord.Sigle);
printf("%s\n\n", myrecord.j1);
printf("%s\n\n", myrecord.j2);
printf("%s\n\n", myrecord.j3);
printf("%s\n\n", myrecord.j4);
printf("%s\n\n", myrecord.j5);
}
fclose(fp);
return 0;
}
所以问题是,如何从第一个文件中选择那些随机团队,并将它们存储到新文件中?