Digitei o código abaixo exatamente como está em meu livro, acontece que esse código não está compilando e não consigo identificar o erro. Revisei o código todo acompanhando o livro e nada de encontrar problema.
Se alguém puder me ajudar fico agradecida!
#include <stdio.h>
#include <stdlib.h>
struct Registro_Carro
{
char Placa[7];
char Modelo[30];
char Cor[30];
int ano;
};
void Grava_Dados(struct Registro_Carro Vetor_Carros[100])
{
int i;
FILE *Id_Arquivo;
if((Id_Arquivo = fopen("carros1.dat", "w")) == NULL)
{
printf("Problemas para gravar na abertura do arquivo de carros!\n");
exit(-1);
}
i=0;
while(i <100 && strcmp(Vetor_Carros[i].Placa, "fim") != 0)
{
if(fwrite(&(Vetor_Carros[i]), sizeof(struct Registro_Carro), 1, Id_Arquivo) == 0)
{
prinftf("Problemas na gravacao do arquivo de carros!\n");
exit(-1);
}
i = i+1;
}
if(fclose(Id_Arquivo) != 0)
{
printf("Problemas no fechamento do arquivo de carros!\n");
exit(-1);
}
}
void Le_Dados(struct Registro_Carro *Vetor_Carros)
{
int i;
FILE *Id_Arquivo;
struct Registro_Carro *Carro;
Carro = (struct Registro_Carro *) malloc(sizeof(struct Registro_Carro));
if((Id_Arquivo = fopen("carros.dat", "r")) == NULL)
{
printf("Problemas na abertura do arquivode carros para leitura!\n");
exit(-1);
}
i - 0;
while(i < 100 && ! feof(Id_Arquivo))
{
fread(Carro, sizeof(struct Registro_Carro), 1, Id_Arquivo);
if(ferror(Id_Arquivo))
{
printf("Problemas na leitura do arquivo de carros!\n");
exit(-1);
}
else
{
Vetor_Carros[i].ano = Carro->ano;
strcpy(Vetor_Carros[i].Placa, Carro->Placa);
strcpy(Vetor_Carros[i].Modelo, Carro->Modelo);
strcpy(Vetor_Carros[i].Cor, Carro->Cor);
}
i = i+1;
}
if(fclose(Id_Arquivo) != 0)
{
printf("Problemas no fechamento do arquivo de carros!\n");
exit(-1);
}
}
int main()
{
struct Registro_Carro *Vetor_Carros;
Vetor_Carros = (struct Registro_Carro *) malloc(100 * sizeof(struct Registro_Carro));
sprintf(Vetor_Carros[0].Modelo, "mustangue");
sprintf(Vetor_Carros[0].Cor, "Verde");
Vetor_Carros[0].ano = 75;
sprintf(Vetor_Carros[1].Placa, "755");
sprintf(Vetor_Carros[1].Modelo, "gol");
sprintf(Vetor_Carros[1].Cor, "azul");
Vetor_Carros[1].ano = 1234;
sprintf(Vetor_Carros[2].Placa, "fim");
sprintf(Vetor_Carros[2].Modelo, "teste");
sprintf(Vetor_Carros[2].Cor, "teste");
Vetor_Carros[2].ano = 0;
Le_Dados(Vetor_Carros);
Grava_Dados(Vetor_Carros);
}