-2
People I need to make a program where I save client data and accounts, I’m trying to save the data of the struct in a vector (it was requested this way) but I’m not getting out of place, I don’t know what could be wrong, someone would have some light on how to solve this?
Another small problem would be line 52 where I am not able to use the gets so the user can type the name giving space between letters, since the scanf stops after identifying a blank
#include <stdio.h>
#include <stdlib.h>
//ARMAZENAR EM ESTRUTURA E UNIOES
typedef union CPF_CNPJ cpf_cnpj;
union CPF_CNPJ{
int cpfOUcnpj[14];
};
typedef struct Cliente cl;
struct Cliente{
char nome[50];
int RG[10];
char endereco[50];
int telefone[11];
float renda[20];
int tipo_cliente[1]; //1-private, 2-alta renda, 3-varejo
cpf_cnpj tipoPessoa; //numa união o cpf ou cnpj do
// cliente que pode ser uma pessoa física ou jurídica.
};
typedef struct Dados_Contas dc;
struct Dados_Contas{
int Numero_Conta[6]; //deve ser unico e gerado pelo programa
int Agencia[5];
float Saldo_Conta[20];
char Tipo_Conta[20];
struct Cliente Titulares; // titulares (deve estar vinculado aos clientes cadastrados)
int rg_titular;
};
void Cadastro_Conta (dc conta[], int qtd_cl, int num){
int i, titular;
for (i=0;i<=qtd_cl;i++){
printf("O seguinte numero foi selecionado para sua conta: %d \n", num);
printf("Digite ele novamente para confirmar: \n"); scanf("%d", &conta[i].Numero_Conta);
printf("Agencia: \n"); scanf("%d", &conta[i].Agencia);
printf("Saldo da conta: \n"); scanf("%f", &conta[i].Saldo_Conta);
printf("Tipo da conta: \n"); scanf("%s", &conta[i].Tipo_Conta);
printf("Digite o RG do titular: \n"); scanf("%d", &conta[i].rg_titular);
}
// titulares
}
void Cadastro_Cliente (cl cliente[], int qtd_cl){
int i;
for (i=0;i<=qtd_cl;i++){
printf("Nome: \n"); gets(Cliente[i].nome); //scanf("%s", &cliente[i].nome);
printf("RG: \n"); scanf("%d", &cliente[i].RG);
getchar();
printf("Endereco: \n"); gets(Cliente[i].endereco); //scanf("%s", &cliente[i].endereco);
printf("Telefone: \n"); scanf("%d", &cliente[i].telefone);
printf("Renda: \n"); scanf("%f", &Cliente[i].renda);
printf("Tipo de cliente: \n 1- Private: Superior a 1M \n 2- Alta renda: acima de 100mil \n 3- Publico geral \n"); scanf("%d", &cliente[i].tipo_cliente);
printf("Cpf ou CNPJ: \n"); scanf("%d", &cliente[i].tipoPessoa);
}
}
int main()
{
//variaveis
int Menu0,Menu1=0, Menu2=0, Menu3=0;
int qtd_cl=0;
int i=0;
cl cadastro_cl[1000];
dc conta[1000];
srand(time(NULL)); //para o valor do numero da conta nao repetir
//rand()%100000;
//MENU
do{
printf(" MENU \n Digite um dos numeros abaixo: \n 1- Inserir \n 2- Imprimir \n 3- Atualizar \n 4- Deposito \n 5- Saque \n 6- Pix \n 0- Sair \n");
scanf("%d", &Menu0);
system("cls || clear");
switch(Menu0){
// 1- inserir
case 1:
printf("Voce deseja: \n 1- Inserir Nova Conta \n 2- Inserir Novo Cliente \n");
scanf("%d", &Menu1);
if(Menu1==1){ // chamada para nova conta
int num=0;
num= rand()%100000;
Cadastro_Conta(conta, qtd_cl, num);
} else if(Menu1==2){ // chamada para novo cliente
Cadastro_Cliente(cadastro_cl ,qtd_cl);
} else printf("ERRO!");
//Mensagens de confirmacao para o usuario
int x=0;
if(Menu1==2){x=0;
qtd_cl=qtd_cl+1;
printf("Cadastro de Cliente realizado com sucesso! \n Digite 1 para retornar ao menu principal \n");
scanf("%d", &x);
if(x==1){
system("cls || clear");
}
} else if(Menu1==1){x=0;
printf("Cadastro da conta realizado com sucesso! \n Digite 1 para retornar ao menu principal\n");
scanf("%d", &x);
if(x==1){
system("cls || clear");
}
}
break;
//2- imprimir
case 2:
printf("Voce deseja: \n 1- Imprimir dados de uma conta \n 2- Imprimir dados de um cliente \n 3- Lista de clientes de uma agencia \n 4- Lista de Contas por tipo de uma agencia \n");
scanf("%d", &Menu2);
if(Menu2==1){ // chamada imprimir dados de uma conta
// ?????????????????????????????????????????????????
} else if(Menu2==2){ // chamada para Imprimir dados de um cliente
// ?????????????????????????????????????????????????
} else if(Menu2==3){ // chamada para Lista de clientes de uma agencia
for(i=0; i<=qtd_cl;i++){
printf("Nome: \n %s \n" , cadastro_cl[i].nome);
printf("RG: \n %d \n", cadastro_cl[i].RG);
printf("Endereco: \n %s \n", cadastro_cl[i].endereco);
printf("Telefone: \n %d \n", cadastro_cl[i].telefone);
printf("Renda: \n %f \n", cadastro_cl[i].renda);
printf("Tipo de cliente:\n %d \n" , cadastro_cl[i].tipo_cliente);
printf("Cpf ou CNPJ: \n %d \n", cadastro_cl[i].tipoPessoa);
system("cls || clear");
}
} else if(Menu2==4){ // chamada para Lista de Contas por tipo de uma agencia
// ?????????????????????????????????????????????????
}else printf("ERRO!");
system("cls || clear");
break;
//3- Atualizar
case 3:
printf("Voce deseja: \n 1- Atualizar dados de um cliente \n 2- Atualizar dados de uma conta \n");
scanf("%d", &Menu3);
if(Menu3==1){ // chamada para atualizar dados de um cliente
//NAO PODE MUDAR CPF
// ?????????????????????????????????????????????????
} else if(Menu3==2){ // chamada para atualizar dados de uma conta
//NAO PODE MUDAR AGENCIA, NUMERO DA CONTA E TIPO
// ?????????????????????????????????????????????????
}else printf("ERRO!");
system("cls || clear");
break;
worked out, now my problem comes down to the time it printa, the string it is printing however what is not string it does not print
– Napexzz

Voce deseja:
 1- Inserir Nova Conta
 2- Inserir Novo Cliente
2
Nome:
thiago s
RG:
5858585
Endereco:
rua m
Telefone:
191919
Renda:
1919
Tipo de cliente:
 1- Private: Superior a 1M
 2- Alta renda: acima de 100mil
 3- Publico geral
1
Cpf ou CNPJ:
20202020
Cadastro de Cliente realizado com sucesso!
 Digite 1 para retornar ao menu principal

– Napexzz
Name: Thiago s RG: 6159604 Address: street m Telephone: 6159696 Income: 0.000000 Customer type: 6159820 Cpf or CNPJ: 5683472 Name: 0.000000 Client type: 6160148 Cpf or CNPJ: 5683472 ............. Then he prints it and then duplicates it
– Napexzz