How do I pass the values stored in a struck to another function can I modify it?

0

I've been trying to run this program since yesterday, but I can not manipulate the data of my struct when I move it to another function, the other function simply to create other values, the goal of the program is to change the name cpf and enroll, ja 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;
  }
 }

  }
    
asked by anonymous 22.06.2018 / 21:52

0 answers