来自文件的随机行结构

时间:2014-09-11 09:35:40

标签: c file

我有这个结构:

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;
}

所以问题是,如何从第一个文件中选择那些随机团队,并将它们存储到新文件中?

0 个答案:

没有答案