Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2012, 11:08
Alvaro_SG
 
Fecha de Ingreso: junio-2008
Mensajes: 22
Antigüedad: 15 años, 10 meses
Puntos: 0
[C] Leer solo la primera línea en un bucle

Hola, tengo que terminar una práctica y de momento lo llevo bien, salvo que quiero que se lea la primera línea de un .txt. Aquí está el código:

Código C:
Ver original
  1. #include <stdio.h>
  2.  
  3. int esVocal(char c);
  4.  
  5. void main() {
  6.    
  7.     char anterior, actual;
  8.     int cont = 0, fin;
  9.    
  10.     FILE *archivo;
  11.     archivo = fopen("archivoEj3.txt", "r");
  12.     fscanf(archivo, "%c", &actual);
  13.            
  14.     while(fin != -1) {
  15.        
  16.         if(esVocal(actual) && anterior == ' ') {
  17.            
  18.             cont++;
  19.            
  20.         }
  21.        
  22.         anterior = actual;
  23.         fin = fscanf(archivo, "%c", &actual);
  24.        
  25.     }
  26.    
  27.     printf("Hay %d palabras que empiezan por vocal", cont);
  28.      
  29. }
  30.  
  31. int esVocal(char c) {
  32.    
  33.     int siVocal = 1;
  34.    
  35.     switch(c) {
  36.         case 'A' :
  37.         case 'E' :
  38.         case 'I' :
  39.         case 'O' :
  40.         case 'U' :
  41.         case 'a' :
  42.         case 'e' :
  43.         case 'i' :
  44.         case 'o' :
  45.         case 'u' : return 1;
  46.             break;
  47.         default : return 0;
  48.  
  49.     }
  50.    
  51. }

El .txt que abre contiene esto:

Cita:
Atencion: las ideas fundamentales de la ciencia son esencialmente sencillas y pueden ser expresadas en un lenguaje comprensible para todos. Albert Einstein

Esta linea ya no se debe leer..., esta solo para probar si para correctamente...
Pues bien, quiero que sólo lea la primera, ya que el programa cuenta las palabras que comienzan por inicial de la primera línea, las demás no las lee.

Gracias.