The "find player" command in my code is not working, and I also want to add a command that deletes the ranking data. Can anyone help?
Follow the code:
#include<stdio.h>
#include<stdlib.h>
typedef struct{
char nome[25];
char meta[10];
int vendas;
}ranking;
ranking rank;
FILE *arqrank;
//Protótipo das funções
void abre_arquivo(void);
void menu();
void iserir();
void mostrar();
void buscar();
void procurar(char nom[25]);
int dados(int i);
int main(){
int opcao;
char nomerk;
abre_arquivo();
do{
system("cls");
printf("PROGRAMA RANKING\n\n\n");
menu();
printf("\nEscolha uma opcao: ");
scanf("%d",&opcao);
switch(opcao){
case 1: iserir(); break;
case 2: mostrar(); break;
case 3: buscar(); break;
case 5: exit(1); break;
default: printf("\n\nOpcao invalida\n");
system("pause");
break;
}
}while(opcao != 5);
system("pause");
}//Fim de main
void abre_arquivo(void){//Abre o arquivo
arqrank=fopen("arquranking.txt","a+b");
}
void menu(){
printf("MENU\n\n");
printf("Inserir Dados 1\n");
printf("Mostrar Ranking 2\n");
printf("Buscar Jogador 3\n");
//printf("Buscar Jogador 4\n");
printf("Sair 5\n");
}
void iserir(){
system("cls");
printf("Inerir\n\n");
printf("Nome: ");
fflush(stdin);
gets(rank.nome);
printf("Meta: ");
fflush(stdin);
gets(rank.meta);
printf("Vendas: ");
scanf("%i",&rank.vendas);
fseek(arqrank, 0, SEEK_END);//Procura o fim do arquivo
fwrite(&rank, sizeof(ranking), 1, arqrank);//Insere os dados no arquivo
printf("\n\nOperacao realizada\n\n");
system("pause");
}
void mostrar(){
//Exibe em forma de tabela (SQL)
int j=1;
printf("\n __________________________________________________");
printf("\n|COLOCACAO |NOME |META |VENDAS |");
printf("\n|____________|_______________|_________|___________|");
rewind(arqrank);//Move o cursor para o inicio do arquivo
do
{
fread(&rank, sizeof(ranking), 1, arqrank);//Lê o arquivo linha-a-linha
dados(j);
if(feof(arqrank)==0);
j++;
}while(feof(arqrank)==0);
printf("\n|____________|_______________|_________|___________|");
printf("\nTecle [Enter] para voltar ao menu...");
system("pause>null");
}
void buscar(){
char nomejog[25];
system("cls");
printf("Buscar Jogador\n\n");
printf("Digite o nome do jogador: ");
fflush(stdin);
gets(nomejog);
rewind(arqrank);//Cursor para o inicio
do{
fread(&rank, sizeof(ranking), 1, arqrank);//Faz a leitura do arquivo
if(nomejog==rank.nome)//Se o nome procurado for encontrado
mostrar();//Mostra os dados do jogador
}while(feof(arqrank)==0 && nomejog!=rank.nome);//Até que chegue ao fim do arquivo
if(nomejog!=rank.nome)
printf("Nao encontrado\n\n");
system("pause");
}
void procurar(char nom[25]){
rewind(arqrank);//Cursor no inicio
do{
fread(&rank, sizeof(ranking), 1, arqrank);
if(nom==rank.nome)
mostrar();//Exibe as informações do determinado jogador casoo exista
}while(feof(arqrank)==0 && nom!=rank.nome);
if(nom!=rank.nome)//Se não existir
printf("Nao encontrado\n\n");
system("pause");
}
int dados(int i){
/*Esta função a linha contendo os dados do jogador, linha-a-linha.
de aocordo com a quantidade
*/
printf("\n|%do COLOCADO |%-15s|%-9s|%-11d|",i,rank.nome,rank.meta,rank.vendas);
}