[C con Clase] ayuda con el ejemplo 9.4

Manu xmessoft en gmail.com
Vie Feb 19 16:46:18 CET 2010


^Z es EOF en algunos sistemas operativos...
Mientras no sea "fin de fichero" irá pidiendo y procesando datos...

El 19/02/2010 9:39, kbzita93 escribió:
> 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
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>    





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