Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alex Camargo

Erro na função feof()

Recommended Posts

Estou lendo um arquivo binário que contem a sequência inteira 12345, porém o feof() mostra 123455.

Fiz da seguinte maneira:

 

	  while(!feof(arquivo)){
	    fread(&numero, sizeof(int), 1, arquivo);
	    printf("%d", numero);
	  }

 

Quando faço da maneira abaixo, utilizando um teste de condição dentro da estrutura de repetição, funciona corretamente. Logo gostaria de saber o porquê disso?

 

	  while(!feof(arquivo)){
	    fread(&numero, sizeof(int), 1, arquivo);
	    if (!feof(arquivo)) 
	    printf("%d", numero);
	  }

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá programador, tente este código

 

 

 
int size;
fseek(arquivo, 0, SEEK_END);
size = ftell(arquivo) / sizeof(int);
 

while(!feof(arquivo)){
 fread(&numero, sizeof(int), size, arquivo);
 printf("%d", numero);

}

 

testa ai e me diz, estou no trabalho e infelizmente nao trabalho com c++, se nao resolver, quando chegar em casa eu vejo com mais calma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.