Ir ao conteúdo
  • Cadastre-se

C C - função fwrite - Problema com variáveis do tipo int


guhbrj

Posts recomendados

Pessoal, boa tarde !

Estou estudando a função fwrite e estou com algumas dúvidas. Vi em uma literatura muito antiga que o modo de abertura do arquivo a ser gravado deve ser preferencialmente binário "wb", por conta do tamanho dos dados, tendo em vista a otimização do armazenamento no disco, coisa que não existe mais hoje em dia. As minhas dúvidas são as seguintes:

 

1 - É possível gravar dados com a função fwrite em modo texto (a, a+, w ... etc) ? Tem alguma incompatibilidade ?

2 - O que tem de errado no código abaixo:

 

	void cadProd(struct itens produtos)
	{
	
		struct itens *aux;
		FILE *arquivo;
		int lim = sizeof(produtos);
		arquivo = fopen("database.dat", "a");
		
		aux = malloc(sizeof(produtos));
		
		printf("Entre com o código: ");
		scanf("%d", &aux->cod);
		fflush(stdin);
		printf("Entre com a descrição do produto: ");
		gets(aux->desc);
		fflush(stdin);
		printf("Entre com a data de validade (ex.: 13/05/1888) : ");
		gets(aux->dataVal);
		fflush(stdin);
		printf("Entre com a quantidade atual em estoque: ");
		scanf("%d", &aux->quantAtu);
		fflush(stdin);
		printf("Entre com a quantidade mínima em estoque: ");
		scanf("%d", &aux->quantMin);
		fflush(stdin);
		
		fwrite(aux, lim, 1, arquivo);
		fclose(arquivo);
	}

 

//declaração da struct

struct itens{
int cod, quantAtu, quantMin;
char desc[20], dataVal[11]; //formato data dd/mm/AAAA
	
};

 

ao executar a função e gravar no arquivo, verifiquei que os dados ficaram gravados com codificação conforme imagem abaixo: 

 

 

 

print_encoding.PNG.a0faf5f5ce7788e9e11322c3b9b96e41.PNG

as entradas foram 

cod :10

desc: aaaa

quantAtu: 100

quantMin: 10

 

Alguém pode ajudar ?

obrigado !

  • Curtir 1
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...