Skip to content

Instantly share code, notes, and snippets.

@joffilyfe
Created December 7, 2015 02:32
Show Gist options
  • Save joffilyfe/429a3e757dfe639ea801 to your computer and use it in GitHub Desktop.
Save joffilyfe/429a3e757dfe639ea801 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char USERFILE[20] = "usuarios.txt";
const char SENHA[] = "admin1";
typedef struct user {
char nome[50];
char cpf[11];
char rg[20];
char endereco[50];
char dataNasc[10];
char telefone [15];
} User;
void registerUser(User *user);
User* captureUser();
void readUsersFromFile();
int main(void) {
int option;
/*
* Nosso menu :D
*/
do {
printf("1) Cadastra Usuário\n");
printf("2) Ler os usuários\n");
printf("0) Exit\n");
printf("Digite a opção desejada: ");
scanf("%d", &option);
getchar();
if (option == 1) {
//Guardamos o endereço criado na função captureUser dentro da variável
User *user = captureUser();
//Gravando o usuário no TXT
registerUser(user);
free(user); //Liberando a memoria
}
if (option == 2) {
readUsersFromFile();
}
} while(option > 0);
return 0;
}
/*
* Nossas funções
*/
//User retorna o endereço de uma estrutura do tipo User
User* captureUser(void) {
User *usuario = (User*)malloc(sizeof(User));
printf("Digite o nome do usuário: ");
scanf("%[^\n]s", usuario->nome);
printf("\n");
getchar();
printf("Digite o CPF do usuário: ");
scanf("%[^\n]s", usuario->cpf);
printf("\n");
getchar();
return usuario;
}
void registerUser(User *user) {
FILE *file = fopen(USERFILE, "a+");
fprintf(file, "%s;%s\n", user->nome, user->cpf);
fclose(file);
}
void readUsersFromFile() {
FILE *file = fopen(USERFILE, "r");
User *usuario = (User*)malloc(sizeof(User));
while(fscanf(file, "%[^;];%s\n", usuario->nome, usuario->cpf) != -1) {
printf("Nome: %s - CPF: %s\n", usuario->nome, usuario->cpf);
}
fclose(file);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment