Efemero Postado Abril 2, 2012 Denunciar Share Postado Abril 2, 2012 Olá!Bom dia a todos.Estou com uma duvida sobre como fazer um contador de carcteres para um arquivo de texto. O codigo que segue abaixo está dando erro. Alguém pode me ajudar?int contFreq(FILE *arq){ int tabela[256]; int i = 0; int ch; for(i = 0; i <256; i++){ tabela = 0; } while(ch = fgetc(arq) > 0){ tabela[ch]++; } return tabela;Desde já obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Abril 2, 2012 Denunciar Share Postado Abril 2, 2012 Olá Efemero,A linguagem C tem algumas funções pra manipular arquivos que podem te ajudar, só depende do propósito desejado.Com essas duas funções você consegue de maneira muito simples obter a quantidade exata de bytes num arquivo.int fseek( FILE *stream, long offset, int origin );long ftell( FILE *stream );Se tiver dificuldades pra usar posta as duvidas ai ok.Abs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Efemero Postado Abril 2, 2012 Autor Denunciar Share Postado Abril 2, 2012 Obrigado, mas esta função que estou querendo fazer, é na verdade para contar com que frequência aparece cada caractere em um arquivo de texto, para posteriormente comprimir esse arquivo de texto com código de Huffman, e não para determinar o tamanho em bytes. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Abril 2, 2012 Denunciar Share Postado Abril 2, 2012 Opa, desculpa ai então.Tenta esse código como base.#include <stdio.h>#include <mem.h>void main(void){ FILE *fp = fopen("teste.txt", "rt"); unsigned char ch; unsigned char tabela[256]; memset(&tabela, 0, sizeof(tabela)); while (feof(fp) == 0) if (ch = fgetc(fp)) tabela[ch]++; printf("Fim\n"); for(int n = 0; n < 256; n++) printf("%03d ", tabela[n]); fclose(fp);}[/codebox] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Efemero Postado Abril 2, 2012 Autor Denunciar Share Postado Abril 2, 2012 Obrigado. Tenho que sair agora para trabalhar, mas quando voltar eu testo e qualquer coisa eu posto aqui.Muito Obrigado pela ajuda CPP.=D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Efemero
Olá!
Bom dia a todos.
Estou com uma duvida sobre como fazer um contador de carcteres para um arquivo de texto. O codigo que segue abaixo está dando erro. Alguém pode me ajudar?
int contFreq(FILE *arq){
int tabela[256];
int i = 0;
int ch;
for(i = 0; i <256; i++){
tabela = 0;
}
while(ch = fgetc(arq) > 0){
tabela[ch]++;
}
return tabela;
Desde já obrigado.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.