Ir ao conteúdo

como lidar com arquivos sem EOF em C?


osenhordotempo

Posts recomendados

Postado

olá!

tenho um problema... preciso desenvolver um aplicativo em C que gere um arquivo "tabulado", com as informações interpretadas, após analisar um primeiro arquivo "bruto".

não vem ao caso a interpretação, já consegui gerar o algoritmo e está tudo certo nesse aspecto!

o problema é, algumas vezes os arquivos "brutos" não terminam com o caractere EOF. logo, o programa não consegue saber quando o arquivo termina (não dá pra usar uma condição do tipo "while (caracter != EOF) , e fica eternamente lendo!

alguém sabe como posso solucionar isso?

tenho usado o modo de leitura de arquivos de texto. seria então necessário usar o modo binário?

se necessitarem de mais alguma informação, ou de um exemplo do tal arquivo que falo, diga aqui também!

desde já agradeço por qualquer ajuda dispensada!

Postado

você pode pegar o tamanho do arquivo, assim.


size_t tam;
fseek(fp,0,SEEK_END);

tam = ftell(fp);

fseek(fp,0,SEEK_BEG);
while (i<tam) {
//....
}

Só não me lembro direito do nome das constantes que vão no lugar de SEEK_END e SEEK_BEG.

Postado

brigadão!

mas pra usar assim, teria que abrir o arquivo com modo binário, ou funcionaria com modo texto mesmo?

EDIT: já achei, em vez de SEEK_BEG é SEEK_SET !!

valeu mesmo!

Arquivado

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

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!