[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