[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