[C con Clase] X-files en c++
Juan
jmicanovelles en gmail.com
Mie Oct 15 16:04:23 CEST 2008
Perdona chato, si usas scanf para un char, para limpiar buffer fflush(stdin)
, ahora bien si quiere usar otros metodos de entrada, que haga lo que le salga de las narices, vale, o no vale
Juan
El pasado 2008-10-14 17:44:32, David escribió:
D> PARA QUE PONEN OTRAS POSIBILIDADES QUE NO SON LO QUE SE TIENE QUE USAR EN
D> ESTE CASO PUNTUAL????
D> SOLO CONFUNDEN A LA PERSONA QUE PREGUNTA Y A LOS QUE EN EL FUTURO BUSQUEN EN
D> LOS ARCHIVOS....
D> DAVID
D> El 14 de octubre de 2008 14:35, Juan <jmicanovelles en gmail.com> escribió:
D> >
D> > Despues del scanf
D> > fflush(stdin) limpia el buffer de entrada
D> > Es otra de las posibilidades.
D> >
D> > Juan
D> >
D> >
D> >
D> >
D> >
D> >
D> > El pasado 2008-10-14 00:20:40, David Barragán Merino escribió:
D> >
D> > DBM> Hola listeros,
D> > DBM> tratando de enseñar C++ me ha pasado un caso muy extraño:
D> > DBM> ///codigo:
D> > DBM> include <stdio.h>
D> > DBM> int main(){
D> > DBM> // Para controlar las iteraciones.
D> > DBM> int i;
D> > DBM> // Para contar el numero de vocales.
D> > DBM> int vocales = 0;
D> > DBM> // Para guardar los caracteres que se leen por teclado.
D> > DBM> char caracter;
D> > DBM> // Repetir 10 veces (desde que i = 0, mientras i < 10)
D> > DBM> for (i = 0; i < 10; i++){
D> > DBM> // Imprimir
D> > DBM> printf("Introduzca el caracter %i:\t", i + 1);
D> > DBM> // Leemos un caracter
D> > DBM> scanf("%c", &caracter);
D> > DBM> // si el caracter leido es a,e,i,o,u,A,E,I,O,U
D> > DBM> if (caracter == 'a' || caracter == 'A' || caracter == 'e' ||
D> > DBM> caracter == 'E' || caracter == 'i' || caracter == 'I' || caracter ==
D> > DBM> 'o' || caracter == 'O' || caracter == 'u' || caracter == 'U'){
D> > DBM> // Aumentamos en 1 el numero de vocales
D> > DBM> vocales++;
D> > DBM> } // fin if
D> > DBM> } // fin for
D> > DBM> // Imprimimos numero de vocales
D> > DBM> printf("- Numero de Vocales: %i\n", vocales);
D> > DBM> // Imprimimos numero de no vocales (10 - vocales)
D> > DBM> printf("- Numero de Otros caracteres: %i\n", 10 - vocales);
D> > DBM> } // fin main
D> > DBM> Este código da error:
D> > DBM> $ ./prueba
D> > DBM> Introduzca el caracter 1: a
D> > DBM> Introduzca el caracter 2: Introduzca el caracter 3: e
D> > DBM> Introduzca el caracter 4: Introduzca el caracter 5: i
D> > DBM> Introduzca el caracter 6: Introduzca el caracter 7: o
D> > DBM> Introduzca el caracter 8: Introduzca el caracter 9: u
D> > DBM> Introduzca el caracter 10: - Numero de Vocales: 5
D> > DBM> - Numero de Otros caracteres: 5
D> > DBM> en cambio
D> > DBM> ///codigo
D> > DBM> #include <stdio.h>
D> > DBM> int main(){
D> > DBM> // Para controlar las iteraciones.
D> > DBM> int i;
D> > DBM> // Para contar el numero de vocales.
D> > DBM> int vocales = 0;
D> > DBM> // Para guardar los caracteres que se leen por teclado.
D> > DBM> char caracter;
D> > DBM> // Repetir 10 veces (desde que i = 0, mientras i < 10)
D> > DBM> for (i = 0; i < 10; i++){
D> > DBM> // Imprimir
D> > DBM> printf("Introduzca el caracter %i:\t", i + 1);
D> > DBM> // Leemos un caracter
D> > DBM> scanf("%c", &caracter);
D> > DBM> // si el caracter leido es a,e,i,o,u,A,E,I,O,U
D> > DBM> if (caracter == 'a' || caracter == 'A' || caracter == 'e' ||
D> > DBM> caracter == 'E' || caracter == 'i' || caracter == 'I' || caracter ==
D> > DBM> 'o' || caracter == 'O' || caracter == 'u' || caracter == 'U'){
D> > DBM> // Aumentamos en 1 el numero de vocales
D> > DBM> vocales++;
D> > DBM> } // fin if
D> > DBM> scanf("%c", &caracter); //Leemos el ENTER
D> > DBM> } // fin for
D> > DBM> // Imprimimos numero de vocales
D> > DBM> printf("- Numero de Vocales: %i\n", vocales);
D> > DBM> // Imprimimos numero de no vocales (10 - vocales)
D> > DBM> printf("- Numero de Otros caracteres: %i\n", 10 - vocales);
D> > DBM> } // fin main
D> > DBM> este no:
D> > DBM> $ ./prueba
D> > DBM> Introduzca el caracter 1: a
D> > DBM> Introduzca el caracter 2: e
D> > DBM> Introduzca el caracter 3: i
D> > DBM> Introduzca el caracter 4: o
D> > DBM> Introduzca el caracter 5: u
D> > DBM> Introduzca el caracter 6: q
D> > DBM> Introduzca el caracter 7: q
D> > DBM> Introduzca el caracter 8: q
D> > DBM> Introduzca el caracter 9: q
D> > DBM> Introduzca el caracter 10: q
D> > DBM> - Numero de Vocales: 5
D> > DBM> - Numero de Otros caracteres: 5
D> > DBM> Alguien sabe como puedo corregir el primer código sin añadir
D> > DBM> "scanf("%c", &caracter); //Leemos el ENTER"???
D> > DBM> Gracias
D> > DBM> ____________________________________________
D> > DBM> |
D> > DBM> | David Barragán Merino
D> > DBM> | E-mail: bameda en ARROBA@gmail.com
D> > DBM> | Ingeniería Informática
D> > DBM> | Universidad Carlos III Madrid
D> > DBM> |____________________________________________
D> > DBM> _______________________________________________
D> > DBM> Lista de correo Cconclase Cconclase en listas.conclase.net
D> > DBM>
D> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
D> > DBM> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
D> > _______________________________________________
D> > Lista de correo Cconclase Cconclase en listas.conclase.net
D> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
D> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
D> >
D> --
D> (\__/)
D> (='.'=)This is Bunny. Copy and paste bunny into your
D> (")_(")signature to help him gain world domination.
D> _______________________________________________
D> Lista de correo Cconclase Cconclase en listas.conclase.net
D> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
D> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Más información sobre la lista de distribución Cconclase