Ajuda em projeto de C

09/11/2019

8

C

Olá, Estou realizando um trabalho da faculdade onde tenho que fazer um controle de veículos, porem coo ainda n estudamos banco de dados o professor pediu que fosse armazenado os dados utilizando txt, fui desenvolvendo minha aplicação e pensei em uma forma de carregar esses dados para a memoria assim que for iniciado o programa para que possa ser realizado as buscas utilizando vetores, até onde fiz o codigo compilei para testar e n teve erros, porem quando rodo o programa ele para de responder, gostaria de alguma ajuda. Desde já agradeço.

segue o codigo:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define TAMVET 20

typedef struct{

char modelo[200];
char marca[200];
char placa[7];
int ano;
int chassi;
char cor[20];
char nome_proprietario[250];
int cpf_proprietario;
int telefone_proprietario;

}veiculo;

void menu();
void grava_dados_int(int dado);
void grava_dados_char(char dado[200]);
void carregar_dados ();

FILE *database;

veiculo dados_txt [TAMVET]; // variavel para carregar os dados do arquivo txt
char teste_fim_arquivo [TAMVET];

int main(){

veiculo veiculo;
int op; //variavel de leitura das opções escolhidas nos menus!

carregar_dados ();

//for (int i=0;i<4;i++){
// printf("%d\n",dados_txt[i].ano);
//}

system("pause");

menu();
scanf("%d",&op);

switch (op){

case 1:

system("cls");

printf("-------------------------------------------------------\n\n");
printf(" DADOS DO VEICULO \n\n");
printf("-------------------------------------------------------\n\n");

printf(" MODELO: ");
setbuf(stdin,NULL);
fgets(veiculo.modelo,200,stdin);
grava_dados_char(veiculo.modelo);

printf("\n MARCA: ");
fgets(veiculo.marca,200,stdin);
grava_dados_char(veiculo.marca);

printf("\n COR: ");
fgets(veiculo.cor,200,stdin);
grava_dados_char(veiculo.cor);

printf("\n PLACA: ");
fgets(veiculo.placa,200,stdin);
grava_dados_char (veiculo.placa);

printf("\n ANO DE FABRICAÇÃO: ");
scanf("%d",&veiculo.ano);
grava_dados_int (veiculo.ano);

printf("\n CHASSI: ");
scanf("%d",&veiculo.chassi);
grava_dados_int (veiculo.chassi);

system("cls");

printf("-------------------------------------------------------\n\n");
printf(" DADOS DO PROPRIETÁRIO \n\n");
printf("-------------------------------------------------------\n\n");

printf(" NOME: ");
setbuf(stdin,NULL);
fgets(veiculo.nome_proprietario,250,stdin);
grava_dados_char (veiculo.nome_proprietario);

printf("\n CPF: ");
scanf("%d",&veiculo.cpf_proprietario);
grava_dados_int (veiculo.cpf_proprietario);

printf("\n TELEFONE: ");
scanf("%d",&veiculo.telefone_proprietario);
grava_dados_int (veiculo.telefone_proprietario);

break;
} // fim switch menu principal


} // fim fo main

void carregar_dados (){

database = fopen("database.txt","r");

if ( database == NULL ) printf ("Erro ao acessar o arquivo dos dados!!\n");

for ( int i = 0; i < TAMVET; i++ ){

if ( fscanf(database,"%s",teste_fim_arquivo) == EOF) break;

fgets(dados_txt[i].modelo,TAMVET,database);
fgets(dados_txt[i].marca,TAMVET,database);
fgets(dados_txt[i].cor,TAMVET,database);
fgets(dados_txt[i].placa,TAMVET,database);
fscanf(database,"%d",dados_txt[i].ano);
fscanf(database,"%d",dados_txt[i].chassi);
fgets(dados_txt[i].nome_proprietario,TAMVET,database);
fscanf(database,"%d",dados_txt[i].cpf_proprietario);
fscanf(database,"%d",dados_txt[i].telefone_proprietario);
}
}



void grava_dados_char (char dado[200]){

database = fopen("database.txt","a");

if ( database == NULL ) printf ("Erro ao acessar o arquivo dos dados!!\n");

fprintf(database,"%s",dado);

fclose(database);
}

void grava_dados_int (int dado){

database = fopen("database.txt","a");

if ( database == NULL ) printf ("Erro ao acessar o arquivo dos dados!!/n");

fprintf(database,"%d\n",dado);

fclose(database);

}

void menu(){

printf("-------------------------------------------------------\n\n");
printf(" GESTÃO DE VEICULOS \n\n");
printf("-------------------------------------------------------\n\n");
printf(" 1 - CADASTRAR \n 2 - ALTERAR \n 3 - CONSULTAR \n 4 - EXCLUIR \n 5 - GERAR RELATÓRIOS \n 6 - SAIR \n\n");
printf("-------------------------------------------------------\n\n");

}
Responder