[C con Clase] ayuda con el ejemplo 9.4

Carlos Falgueras García fark.zano en gmail.com
Vie Feb 19 13:02:09 CET 2010


Hola kbzita93.

EOF(End Of Line) es el caracter de fin de fichero (casi seguro que se trata
de una constante). Quiere decir que este programa na parará hasta que llegue
al final de un archivo de texto. No creo que este programa este pensado para
que tu introduzcas caracteres por el teclado, pero sí para leer un archivo.
Por ejemplo si usas linux podrías probar lo siguiente en un terminal: "cat
f archivo_de_texto | programa". Yo lo he probado y funciona correctamente.

En cuanto a lo de ^Z creo que se refiere a pulsar Ctrl+Z . En Windows no se
como funciona ésto, pero en linux Ctrl+Z pausa el proceso que se está
ejecutando, pero para pararlo completamente se debe pulsar Ctrl+C.

Espero que esto te sirva, siento no poder ofrecerte más ayuda.

El 19 de febrero de 2010 09:39, kbzita93 <aguslessat en gmail.com> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100219/5c4f1f10/attachment.html>


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