[C con Clase] ayuda con el ejemplo 9.4

kbzita93 aguslessat en gmail.com
Vie Feb 19 09:39:46 CET 2010


bueno haber si alguien me puede explicar algo de el ejemplo 9.4 del curso porque no entedi algunas cosas
pego el codigo aqui para que sea mas facil:

#include <iostream> 
#include <cstdio>
#include <cctype> 
using namespace std;

int main() 
{ 
   int consonantes = 0; 
   int vocales = 0; 
   int digitos = 0; 
   int mayusculas = 0; 
   int minusculas = 0; 
   int espacios = 0; 
   int puntuacion = 0; 
   char c; // caracteres leídos desde el teclado
 
   cout << "Contaremos caracteres hasta que se pulse ^Z" 
        << endl; 
   while((c = getchar()) != EOF) 
   { 
      if(isdigit(c)) digitos++; 
      else if(isspace(c)) espacios++; 
      else if(ispunct(c)) puntuacion++; 
      else if(isalpha(c)) 
      { 
         if(isupper(c)) mayusculas++; else minusculas++; 
         switch(tolower(c)) { 
            case 'a': 
            case 'e': 
            case 'i': 
            case 'o': 
            case 'u': 
               vocales++; 
               break; 
            default: 
               consonantes++; 
         } 
      } 
   } 
   cout << "Resultados:" << endl; 
   cout << "Dígitos:     " << digitos << endl; 
   cout << "Espacios:    " << espacios << endl; 
   cout << "Puntuación:  " << puntuacion << endl; 
   cout << "Alfabéticos: " << mayusculas+minusculas << endl; 
   cout << "Mayúsculas:  " << mayusculas << endl; 
   cout << "Minúsculas:  " << minusculas << endl; 
   cout << "Vocales:     " << vocales << endl; 
   cout << "Consonantes: " << consonantes << endl; 
   cout << "Total: " << digitos + espacios + vocales + 
      consonantes + puntuacion << endl; 

   return 0; 
}

lo que me sucede es que yo compilo y ejecuto el programa pero no termina nunca el texto dice contaremos hasta presionar ^Z(aunque en el codigo no veo nada que indique que esto sea asi) y despues tampoco entiendo la condicion del while como por ejemplo que es EOF?? es la unica parte del programa que no comprendo :S
podrian explicarme la condicion del while??

salu2


Más información sobre la lista de distribución Cconclase