1
i made this program my problem is being in researching the client so I research it does not give me the result and terminates the program, I would like to know what I do to remedy the problem
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
typedef struct cliente CLIENTE;
struct cliente{
unsigned long id;
char nome[50];
char telefone[15];
char cpf[12];
char email[50];
};
void menu();
void cadastracliente();
void listarCliente();
void pesquisaCliente();
int main(){
menu();
return 0;
}
void menu(){
int escolha;
do{
system("cls");
printf("[1]-cadastra Cliente\n");
printf("[2]-listar Cliente\n");
printf("[3]-Pesquisar Cliente\n");
printf("[0]-Sair\n");
printf(": ");
scanf("%d",&escolha);
switch(escolha){
case 1:
cadastracliente();
break;
case 2:
listarCliente();
break;
case 3:
pesquisaCliente();
break;
}
}while(escolha!=3);
}
void cadastracliente(){
system("cls");
FILE* arquivo;
CLIENTE clt;
arquivo = fopen("cliente.dat","ab");
if(arquivo ==NULL){
printf("Problemas na abertura do arquivo");
}else{
do{
fflush(stdin);
printf("Digite o nome: ");
gets(clt.nome);
fflush(stdin);
printf("Digite o CPF: ");
gets(clt.cpf);
fflush(stdin);
printf("Digite o email: ");
gets(clt.email);
fflush(stdin);
printf("Digite o Telefone: ");
gets(clt.telefone);
fwrite(&clt,sizeof(CLIENTE),1,arquivo);
printf("\nDeseja continuar(s/n)");
}while(getch() =='s');
fclose(arquivo);
}
}
void listarCliente(){
system("cls");
FILE* arquivo;
CLIENTE clt;
arquivo = fopen("cliente.dat","rb");
if(arquivo ==NULL){
printf("Problemas na abertura do arquivo");
}else{
printf("---------------CLIENTES---------------\n");
while(fread(&clt,sizeof(CLIENTE),1,arquivo)==1){
printf("id: %lu\n",clt.id);
printf("Nome: %s\n",clt.nome);
printf("CPF: %s\n",clt.cpf);
printf("E-mail: %s\n",clt.email);
printf("Telefone: %s\n",clt.telefone);
printf("--------------------------------------\n");
}
}
fclose(arquivo);
getch();
}
void pesquisaCliente(){
system("cls");
FILE* arquivo;
CLIENTE clt;
char nome[30];
arquivo = fopen("cliente.dat","rb");
if(arquivo ==NULL){
printf("Problemas na abertura do arquivo");
}else{
fflush(stdin);
printf("Digite o nome a pesquisar: ");
gets(nome);
while(fread(&clt,sizeof(CLIENTE),1,arquivo)==1){
if(strcmp(clt.nome,nome)==0){
printf("id: %lu\n",clt.id);
printf("Nome: %s\n",clt.nome);
printf("CPF: %s\n",clt.cpf);
printf("E-mail: %s\n",clt.email);
printf("Telefone: %s\n",clt.telefone);
printf("--------------------------------------\n");
}
}
}
fclose(arquivo);
getch();
}
´´´
I found no problem in your code. Just this line
while(escolha!=3);
. just replace 3 with 0, as indicated in my.– Bernardo Lopes
thank you very much.
– Hugo LELIS