Functions in File C

Asked

Viewed 85 times

1

I’m doing a job that lists players and performs some functions using File on link C and I need the program to list in option 2 the player by name and in 3 by shirt number.

My code so far:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

 typedef struct {
         int camisa;
         char pais [20];
         char posicao [20];
         char nome [20];
         }COPA;

 COPA jogador;
 FILE *p_jogador;

 void abre_arquivo(){
      p_jogador=fopen ("copa.dat","a+b");
         }
 void mostrarcamisa(){
      printf("\n %s %d",
      jogador.nome, jogador.camisa);
}

void listarcamisa(){
       rewind(p_jogador);
       do{
       fread(&jogador,sizeof(COPA),1,p_jogador);
       if(feof(p_jogador)==0) mostrarcamisa();
       }while(feof(p_jogador)==0);
       getch();
}

 void cadastrar(){
     int continuar=1;
     do {

        system("cls");
        printf(" Cadastrar jogadores ");
        printf("\n Nome do jogador: ");
        scanf("%s",&jogador.nome);
        printf("\n Pais de origem: ");
        scanf("%s", &jogador.pais);
        printf("\n Posicao do jogador: ");
        scanf("%s", &jogador.posicao);
        printf("\n Numero da camisa: ");
        scanf("%d", &jogador.camisa);

        fseek(p_jogador,0, SEEK_END);

        fwrite (&jogador, sizeof(COPA), 1,p_jogador);
        printf("\n Sucesso. Quer continuar? 1- sim 2 -nao\n");
        scanf ("%d", &continuar);
         }while (continuar==1);
}

 void mostrarnome(){
      printf("\n %s",
      jogador.nome);
}

 void listarnome(){
       rewind(p_jogador);
       do{
       fread(&jogador,sizeof(COPA),1,p_jogador);
       if(feof(p_jogador)==0) mostrarnome();
       }while(feof(p_jogador)==0);
       getch();
}


    main(){
            int op=1;
           abre_arquivo();
           do {
           system("cls");
           printf("MENU");
           printf("\n 1 - Cadastrar jogador");
           printf("\n 2 - Listar jogadores por nome");
           printf("\n 3 - Listar pela camisa");
           printf("\n 4 - Sair");
           scanf("%d",&op);
           switch(op)
           {
           case 1: cadastrar();
                    break;
           case 2: listarnome();
                   break;
           case 3: listarcamisa();
                   break;
           case 4: printf("\n Adeus e rumo ao HEXA");
                   break;
           default: printf("Erro");
                   break;
           }
           }while(op!=4);
            fclose(p_jogador);
    }
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.