lunes, 1 de agosto de 2011

Información ficheros texto

He estado haciendo unas pruebas con funciones de manejo de ficheros en C para quitar el óxido a mis conocimientos de C. Como resultado he hecho un programilla para mostrar cierta información relativa a un fichero de texto. Podemos obtener el número de caracteres, palabras y líneas en un fichero de texto. El nombre del fichero se pasa como parámetro en la línea de comando. Es decir, el modo de ejecutar el programa sería el siguiente:
                       programa nombre_fichero 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char * argv[])
{
  FILE *fichero;
  char c;
  int contador_char=0, contador_lineas=0, contador_palabras=0, contador_char_palabra=0;

  if (argc==2) {
    fichero = fopen(argv[1],"r");
    if (!feof(fichero)) contador_lineas = 1;
    while ((c=fgetc(fichero)) != EOF) {
      if ((((int)c) != 32) && (c!='\n')) {
        contador_char++;
        contador_char_palabra++;
      }
      if (((c==' ') || (c=='\n')) && (contador_char>0)) {
        contador_palabras++;
        contador_char_palabra=0;
      }
      if (c=='\n') contador_lineas++;
    }
    if (contador_char_palabra>0) contador_palabras++;

    fclose(fichero);

    printf("El numero de caracteres en el fichero es: %d\n", contador_char);
    printf("El número de palabras en el fichero es: %d\n", contador_palabras);
    printf("El numero de lineas en el fichero es: %d\n",contador_lineas);
  }
  else {
    printf("Uso: file_counters nombrefichero");
  }
  return 0;
}

No hay comentarios:

Publicar un comentario