Enviado em 11/12/2019 - 20:36h
Olá a todos, recentemente comecei a estudar structs em C... Então comecei a brincar um pouco com isso, não sou nenhum profissional, apenas um estudando, não tenho intenção em colocar este programa em linha de produção(não sou louco), só estou me divertindo mesmo.
#include <stdio.h>
#include <stdlib.h>
struct dadosCliente {
char nome[100], endereco[100], CPF[20], dataNascimento[11];
};
typedef struct dadosCliente Cliente;
/*agora o comando struct dadosCliente
pode ser chamado apenas de -> Cliente
*/
void bufferClear() {
int ch;
while ((ch = fgetc(stdin)) != '\n' && ch != EOF);
}
int menu(int option) {
system("clear");
printf("\tBEM VINDO\n\n");
printf("Digite 1 para inserir um cliente no banco de dados\n");
printf("Digite 2 para mostrar todos os clientes no bando de dados\n");
printf("Digite 0 para sair\n");
printf("\nDigite a opcao desejada: ");
scanf("%d", &option);
bufferClear();
return option;
}
void inserirDados(Cliente *dados) {
system("clear");
printf("Digite o nome do(a) cliente: ");
scanf("%99[^\n]", dados -> nome);
//dados->nome é equivalente a: (*dados).nome
bufferClear();
printf("Digite a data de nascimento de '%s': ", (*dados).nome);
scanf("%10[^\n]", dados -> dataNascimento);
bufferClear();
printf("Digite o CPF de '%s': ", (*dados).nome);
scanf("%19[^\n]", (*dados).CPF);
bufferClear();
printf("Digite o endereco de '%s': ", (*dados).nome);
scanf("%99[^\n]", (*dados).endereco);
bufferClear();
}
void mostrarClientes(Cliente *dados, int tamVet) {
system("clear");
printf("----------------------------------------------------------\n");
printf("\tClientes cadastrados\n");
printf("----------------------------------------------------------\n\n");
for (int i = 0; i < tamVet - 1; i++) {
printf("----------------------------------------------------------\n");
printf("Nome: %s\nEndereco: %s\nCPF: %s\nData de nascimento: %s\n", dados[i].nome, dados[i].endereco, dados[i].CPF, dados[i].dataNascimento);
printf("----------------------------------------------------------\n\n");
}
scanf ("%*c");
}
void sair () {
printf ("Pressione [ENTER] para encerrar o programa...");
scanf ("%*c");
}
int main(void) {
int tamVet = 1, option;
Cliente dados[tamVet];
do {
option = menu(option);
if (option == 1) {
inserirDados(&dados[tamVet-1]); //como vamos usar ponteiros devemos usar o '&'
//Usamos tamVet -1 pois essa se refere a uma posicao do vetor
//O vetor inicialmente tem tamanho 1
//Ou seja, possui duas posições -> 0 e 1
//Precisamos modificar primeiro a posicao 0
//Por isso passamos a posicao [tamVet - 1]
printf("\nCLIENTE '%s' INSERIDO(A) COM SUCESSO!\n", dados[tamVet-1].nome);
printf ("Pressione [ENTER] para continuar...");
scanf ("%*c");
system("clear");
tamVet++; //aumentamos o tamanho do vetor para podermos adicionar novos clientes
} else if (option == 2) {
mostrarClientes(dados, tamVet);
} else if (option == 0) {
break;
} else {
printf ("OPCAO INVALIDA!\n");
printf ("Pressione [ENTER] para tentar uma nova opcao...");
scanf ("%*c");
}
} while (option != 0);
printf ("Saindo do programa....\n");
sair();
return 0;
}
int tamVet = 1, option;
Cliente dados[tamVet];
do {
option = menu(option);
if (option == 1) {
inserirDados(&dados[tamVet-1]);
....
} while(...)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (0)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
Mikrotik não mostra bytes nem packtes (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código [RESOLVID... (4)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta