Estou na seguinte situação: Tenho um trabalho da faculdade onde eu preciso criar um sistema de cadastramento de veículos de uma Garagem de carros usados. O que eu quero fazer é usar uma struct com as variáveis dos dados que vou cadastrar de cada carro, e após a leitura das variáveis dessa struct, colocar esses dados dentro de um arquivo "carros.dat" (Necessariamente esse nome e essa extensão).
Bom... Desenvolvi o código, estruturado em procedimentos, meu problema é na hora de inserir essas variáveis dentro do arquivo, não entra nenhum dado dentro dele. Vou postar o código inteiro, se alguém puder me ajudar, ficaria grato.
/**
@author Rodolpho Pivetta Sabino
*/
#include <stdio.h>
#include <string.h>
struct CARRO {
char placa[9];
char modelo[15];
char fabricante[20];
int anoFabricacao;
int anoModelo;
int combustivel;
float preço;
};
FILE *abreArquivo(char *carros, char *modo) {
FILE *pfile;
if ((pfile = fopen (carros, modo)) == NULL) {
printf ("Erro ao abrir o arquivo %s", carros);
exit (100);
}
return (pfile);
}
void leituraMenu (FILE *c) {
int opc;
printf ("\t\também vindo ao Sistema da Empresa SpaceCar\n\t\t\tInforme Sua Escolha\n\n\
1. Inserir um carro no cadastro\n\
2. Retirar um carro do cadastro (carro vendido)\n\
3. Ordenar os carros da forma desejada\n\
4. listagem dos carros disponiveis para venda\n\
5. Encerrar Sistema\n\nSua Escolha: ");
scanf ("%d", &opc);
menu(c,opc);
}
void menu (FILE *c, int opc) {
struct CARRO car;
switch (opc){
case 1:
system ("cls");
printf ("\t\tInserindo carro no cadastro\n\n");
fflush(stdin);
lerDadosCarro(&car);
fwrite(&car,sizeof(car),1,c);
fflush(stdin);
system ("pause");
system ("cls");
leituraMenu(c);
break;
/*
case 2:
break;
case 3:
break;
case 4:
break;*/
case 5:
system ("cls");
printf ("\n\n\n\n\n\n\t\tObrigado por utilizar o Sistema SpaceCar\n\n\n\n\n\n\n");
break;
default:
printf ("Opcao Invalida\n");
system ("pause");
system ("cls");
leituraMenu(c);
}
}
void lerDadosCarro (struct CARRO *car) {
printf ("Informe a placa do carro da seguinte forma: AAA-0000\nPlaca: ");
do {
gets(car->placa);
} while ((strlen(car->placa))!=8||car->placa[3]!='-');
printf ("Informe o modelo do carro: ");
gets (car->modelo);
printf ("Informe o fabricante do carro: ");
gets (car->fabricante);
printf ("Informe o Ano de Fabricacao: ");
scanf ("%d", &car->anoFabricacao);
printf ("Informe o Ano do Modelo: ");
scanf ("%d", &car->anoModelo);
printf ("Informe o tipo de combustivel\n1 - Alcool\n2 - Diesel\n3 - Gasolina\nOpcao: ");
do {
scanf ("%d", &car->combustivel);
} while (car->combustivel<1||car->combustivel>3);
printf ("Informe o preço de venda: ");
scanf ("%f", &car->preço);
}
void fechaArquivo (FILE *c, char *carros) {
if (fclose(c) == EOF) {
printf ("Erro ao encerrar o arquivo %s", carros);
exit (102);
} else {
remove ("carros.dat");
}
}
int main() {
FILE *c;
char carros[]="carros.dat";
c=abreArquivo(carros, "w+");
leituraMenu(c);
fechaArquivo(c,carros);
return 0;
}
Pergunta
RodolphoPivetta
Bom dia, sou novo no fórum.
Estou na seguinte situação: Tenho um trabalho da faculdade onde eu preciso criar um sistema de cadastramento de veículos de uma Garagem de carros usados. O que eu quero fazer é usar uma struct com as variáveis dos dados que vou cadastrar de cada carro, e após a leitura das variáveis dessa struct, colocar esses dados dentro de um arquivo "carros.dat" (Necessariamente esse nome e essa extensão).
Bom... Desenvolvi o código, estruturado em procedimentos, meu problema é na hora de inserir essas variáveis dentro do arquivo, não entra nenhum dado dentro dele. Vou postar o código inteiro, se alguém puder me ajudar, ficaria grato.
Abraços
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.