El código comentado.
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
int mayus ( FILE * file ) {
int c;
int mayusculas = 0;
//Hasta llegar al final del fichero...
while ( !feof ( file
) ) { //...leerá letra por letra...
//...imprimiendo y contando solo las mayusculas.
if ( c > 64 && c < 91 ) {
mayusculas++;
}
}
//de no haber letras en el archivo retorna 0
if ( mayusculas == 0 ){
return 0;
//Si hay letras en el fichero retorna la cantidad.
}else{
return mayusculas;
}
}
int main () {
FILE * arch; // <- Aqui se crea el puntero. Evite crear globales el maximo pocible
//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.
if ( !(arch
= fopen ( "prueba.txt", "r" )) ){ printf("No existe ningun archivo llamado prueba.txt"); return 1;
}
//mayus devuelve un entero que es el numero de mayusculas. Ese printf puedes poner dentro de la misma funcion si quisieras.
printf ( "\n\ncantidad de mayusculas es:%d\n", mayus
(arch
) ); //LLamamos a mayus pasando el archivo
//Al final cierra el archivo
//hacemos una pausa
//retornamos cero que en nuestro caso quiere decir "todo correcto".
return 0;
}
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