Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/03/2015, 00:31
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: problema con funcion en C ejercicio de ficheros

El código comentado.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int mayus ( FILE * file ) {
  5.     int c;
  6.     int mayusculas = 0;    
  7.    
  8.     //Hasta llegar al final del fichero...
  9.     while ( !feof ( file ) ) {
  10.         //...leerá letra por letra...
  11.         c = fgetc ( file );
  12.        
  13.         //...imprimiendo y contando solo las mayusculas.
  14.         if ( c > 64 && c < 91 ) {
  15.             printf ( " %c", c );
  16.             mayusculas++;
  17.         }    
  18.  
  19.     }
  20.    
  21.     //de no haber letras en el archivo retorna 0
  22.     if ( mayusculas == 0 ){
  23.         return 0;
  24.        
  25.     //Si hay letras en el fichero retorna la cantidad.
  26.     }else{
  27.         return mayusculas;
  28.     }
  29. }
  30.  
  31. int main () {
  32.     FILE * arch;  // <- Aqui se crea el puntero. Evite crear globales el maximo pocible
  33.    
  34.     //Muy importante hacer la comprobacion para saber si existe el fichero o no. De no haber ninguno no hay nada que leer y se debe interrumpir aqui por lo sano.
  35.     if ( !(arch = fopen ( "prueba.txt", "r" )) ){
  36.         printf("No existe ningun archivo llamado prueba.txt");
  37.         return 1;
  38.     }
  39.    
  40.     //mayus devuelve un entero que es el numero de mayusculas. Ese printf puedes poner dentro de la misma funcion si quisieras.
  41.     printf ( "\n\ncantidad de mayusculas es:%d\n", mayus(arch) ); //LLamamos a mayus pasando el archivo
  42.    
  43.     //Al final cierra el archivo
  44.     fclose ( arch );
  45.     //hacemos una pausa
  46.     getchar();
  47.     //retornamos cero que en nuestro caso quiere decir "todo correcto".
  48.     return 0;
  49. }

Debes practicar y mucho con los archivos.

En esta pagina puedes encontrar una buena explicación y también muchos ejemplos sobre ficheros: http://www.c.conclase.net/ficheros/

Ahora si copias y pegas el código sin haber entendido nada apenas no lograrás gran cosa, y te estarás engañando a ti mismo.

busca en internet sobre funciones, ficheros etc etc. La pagina que te pase es muy buena.

Suerte