0
I’ve been trying to make this project run since yesterday, but I can’t manipulate the data of my struct when I move it to another function, the other function simply create other values, the goal of the project is to change the name Cpf and license plate, already written.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct livro{
char titulo[81];
char autor[41];
char editora[31];
int ano;
int codigo;
}livro;
typedef struct cliente{
char *nome[50];
char *cpf[11];
char *matricula[6];
}cliente;
void MenuSecundario();
void VisualizarDados();
void AlterarDados();
int main(){
cliente *kirito;
int opcao, menu, i;
do
{
printf("\t\t\nSelecione uma das opcoes: \n");
printf("1. Cadastrar, altera ou remover dados de cliente: \n");
printf("2. Cadastrar, altera ou remover livro : \n");
printf("3. Visualizar dados de clientes: \n");
printf("4. Visualizar dados de livros: \n");
printf("5. Realizar novo emprestimo: \n");
printf("6. Realizar devolucao: \n");
printf("0. Sair\n");
printf("Opcao: ");
scanf("%d", &opcao);
switch( opcao ){
case 0:
system("cls || clear");
printf("Fechando progama...\n");
break;
case 1:
system("cls || clear");
MenuSecundario(&kirito);
break;
case 2:
system("cls || clear");
break;
case 3:
VisualizarDados();
system("cls || clear");
break;
case 4:
system("cls || clear");
break;
case 5:
system("cls || clear");
break;
case 6:
system("cls || clear");
break;
default:
system("cls || clear");
printf("Opcao invalida! Tente novamente.\n");
}
}while(opcao);
return 0;
}
void MenuSecundario(cliente* kirito[50]){
void AlterarDados();
int menu,i,aux=1;
int pos=0;
do{
system("cls || clear");
printf("Selecione uma das opcoes: \n");
printf("1. Cadastrar novo cliente: \n");
printf("2. Alterar dados de clientes: \n");
printf("3. Remover cliente: \n");
printf("0. Sair\n");
printf("Opcao: ");
scanf("%d", &menu);
switch(menu){
case 0:
system("cls || clear");
printf("Saindo do menu...\n");
break;
case 1:
system("cls || clear");
printf("\n--------------------------Cadastrar novo cliente--------------------------\n");
printf("\n\n");
for(i=0; i<50; i++){
while(aux==1){
printf("Digite o nome do cliente: \n");
scanf(" %[^\n]s", &kirito[i]->nome);
printf("Digite o cpf do cliente: \n");
scanf(" %[^\n]s", &kirito[i]->cpf);
printf("Digite a matricula do cliente: \n");
scanf(" %[^\n]s", &kirito[i]->matricula);
system("cls || clear");
printf("Deseja cadastrar novo usuario ?\n");
printf("1. sim.\n");
printf("2. nao.\n");
printf("opcao:");
scanf("%d", &aux);
system("cls || clear");
}
}
break;
case 2:
AlterarDados(&kirito);
system("cls || clear");
break;
case 3:
system("cls || clear");
break;
default:
system("cls || clear");
printf("Opcao invalida! Tente novamente.\n");
}
}while(menu);
}
void VisualizarDados(cliente* kirito[50]){
printf("tomara");
int i;
for(i=0; i<50; i++){
printf("%s",kirito[i]->nome);
}
}
void AlterarDados(&kirito){
int i,endo;
char nome_busca[50];
fflush(stdin);
FILE *file;
system("cls || clear");
printf("---------------Alterar dados do cliente------------ \n");
printf("\n\n");
printf("Informe o nome do cliente: \n");
scanf(" %[^\n]",nome_busca);
file = fopen("kiritobinario","r");
for(i=0; i<50; i++) {
if(strcmp(kirito[i]->nome,nome_busca)==0){
do{
system("cls || clear");
printf("Selecione uma das opcoes: \n");
printf("1. Alterar nome: \n");
printf("2. Alterar cpf: \n");
printf("3. Alterar matricula: \n");
printf("0. Sair\n");
printf("Opcao: ");
scanf("%d", &endo);
system("cls || clear");
switch(endo){
case 1:
printf("Informe o nome correto do cliente: \n");
scanf(" %[^\n]s", &kirito[i]->nome);
fprintf(file,kirito[i]->nome);
break;
case 2:
printf("Informe o cpf correto: \n");
scanf(" %[^\n]s",&kirito[i]->cpf);
fprintf(file,"\n");
fprintf(file,kirito[i]->cpf);
break;
case 3:
printf("Informe a matricula correta: \n");
scanf(" %[^\n]s", &kirito[i]->matricula);
fprintf(file,"\n");
fprintf(file,kirito[i]->matricula);
fprintf(file,"\n");
break;
case 0:
system("cls || clear");
printf("Saindo do menu...\n");
return;
default:
system("cls || clear");
printf("Opcao invalida! Tente novamente.\n");
}
}while(endo);
}else{
printf("-----------------------Usuario nao existe-----------------------\n");
system("pause");
system("cls || clear");
break;
}
}
}
What is the difference to this? https://answall.com/q/309059/101
– Maniero
The code is more similar I’m trying to do different things. and so far this code does not work
– Johnny Keys