Pessoal, estou com um pequeno probleminha no meu codigo..
Estou responsavel por fazer um Programa que lê um arquivo de texto e produz um relatório com a lista de palavras de 1 letra, 2 letras e assim por diante e que essa lista seja em ordem alfabetica.
Outro fator importante e pedido é que para ler o arquivo, você deve programar a função LireMot. Esta função tem o protótipo: char * LireMot (FILE * myfile); Esta função retorna um ponteiro nulo quando o fim do arquivo é alcançado. Caso contrário, ele aloca um buffer que será lançado por você e que contém a palavra que foi lida.
porem quando compilo meu codigo, tem um erro que não to conseguindo resolver.
vocês podem me ajudar?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
extern char* LireMot(FILE*);
bool scanne(FILE* f, int taille)
{
bool ultimo = true;
bool vazio = true;
int comprimento_palavra;
char* palavra = NULL;
rewind(f);
printf("palavra(s) de %d letra(s) :", tamanho);
while ((palavra = LireMot(f)) != NULL)
{
comprimento_palavra = strlen(palavra);
if (comprimento_palavra == tamanho)
{
puts(palavra);
vazio = false;
}
else if (ultimo && comprimento_palavra > tamanho)
{
ultimo = false;
}
else
{
/* Rien */
}
free(palavra);
}
if (vazio)
{
puts("-nada !-");
}
return ultimo;
}
int main(void)
{
bool ultimo = false;
int tamanho = 1;
FILE* f = fopen("teste.txt", "r");
if (f != NULL)
{
do
{
ultimo = scanne(f, tamanho);
tamanho++;
}
while (!ultimo);
fclose(f);
}
return EXIT_SUCCESS;
}