[C con Clase] X-files en c++
Steven Davidson
srd4121 en njit.edu
Mar Oct 14 04:12:56 CEST 2008
Hola David,
bameda wrote:
> Hola listeros,
>
> tratando de enseñar C++ me ha pasado un caso muy extraño:
>
[CORTE]
>
> Este código da error:
> $ ./prueba
> Introduzca el caracter 1: a
> Introduzca el caracter 2: Introduzca el caracter 3: e
> Introduzca el caracter 4: Introduzca el caracter 5: i
> Introduzca el caracter 6: Introduzca el caracter 7: o
> Introduzca el caracter 8: Introduzca el caracter 9: u
> Introduzca el caracter 10: - Numero de Vocales: 5
> - Numero de Otros caracteres: 5
>
>
>
> en cambio
>
[CORTE]
> este no:
> $ ./prueba
> Introduzca el caracter 1: a
> Introduzca el caracter 2: e
> Introduzca el caracter 3: i
> Introduzca el caracter 4: o
> Introduzca el caracter 5: u
> Introduzca el caracter 6: q
> Introduzca el caracter 7: q
> Introduzca el caracter 8: q
> Introduzca el caracter 9: q
> Introduzca el caracter 10: q
> - Numero de Vocales: 5
> - Numero de Otros caracteres: 5
>
> Alguien sabe como puedo corregir el primer código sin añadir
> "scanf("%c", &caracter); //Leemos el ENTER"???
>
En lugar de este 'scanf()', podrías usar 'getchar()', para extraer y
descartar el carácter de fin-de-línea.
Otra posibilidad es leer una cadena de caracteres y procesarla como te
interese. Por ejemplo,
char szCar[10]="";
scanf( "%s", szCar );
// Usamos el primer carácter
if( szCar[0] == 'a' || szCar[0] == 'A' || ... )
Si lo prefieres, podemos limitar la cantidad a leer:
scanf( "%2s", szCar );
Espero que esto te aclare la duda.
Steven
Más información sobre la lista de distribución Cconclase