Inicio‎ > ‎La función feof‎ > ‎

La función feof

Escribe una función que cuente el número de veces que aparece un cierto carácter (la a, por ejemplo) en un archivo de texto. El prototipo de la función será el siguiente:

int contar_caracter ();

Necesitarás una variable global que se leerá desde la función main y que contendrá el carácter que se desea contar.

La función feof nos permite saber si queda algún carácter más que leer en el archivo. En lugar de leer cadenas de caracteres, como en el ejemplo de hoy, tendrás que leer caracteres con el formato %c.

Solución


Fíjate en que la función contar_caracteres no escribe un mensaje de error cuando no puede abrir el archivo de texto. Lo que hace es devolver un código de valor -1, que no puede ser un número de palabras, que utiliza main para escribir el mensaje de error. Esta es una práctica habitual. Por ejemplo, fscanf devuelve un código igual al de formatos que contiene su segundo argumento si la lectura tuvo éxito.

#include <stdio.h>

char clave;

int contar_caracteres ()
{
  FILE * f;
  int  numero = 0;
  char caracter;

  f = fopen ("texto.txt", "r");

  if (f == NULL)
    return -1;

  while (feof (f) == 0)
  {
    fscanf (f, "%c", &caracter);
    if (caracter == clave)
      numero++;
  }

  fclose (f);

  return numero;
}

void main ()
{
  int num;

  printf ("Introduzca un carácter: ");
  scanf ("%c", &clave);

  num = contar_caracteres ();

  if (num == -1)
  {
    printf ("Error abriendo texto.txt\n");
    return;
  }

  printf ("Numero de veces que aparece %c en texto.txt = %d\n", clave, num);
}
Subpages (1): Archivo de prueba
Comments