How do I pass the values stored in a truck so another function can modify it?

Asked

Viewed 59 times

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

  • The code is more similar I’m trying to do different things. and so far this code does not work

No answers

Browser other questions tagged

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