Ir ao conteúdo
  • Cadastre-se

C Código em linguagem C não compila


Angelij

Posts recomendados

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);
}

 

Link para o comentário
Compartilhar em outros sites

Olá, achei alguns erros, há um printf escrito de forma errada, também tem um detalhe, pois você salva os dados nas variáveis e chama a função ler, sendo que na primeira execução não irá ter arquivo para ler, e também na função de ler o nome do arquivo tá errado, bom desculpa por não poder mostrar direito, mas foram esses os erros que achei.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!