C/Visual C - Problemas con scanf

 
Vista:

Problemas con scanf

Publicado por Angel (4 intervenciones) el 25/11/2010 14:23:10
Que tal, buueno, soy nuevo en esto de la programacion y realice un pequeño programa, pero cuando meto el nombre, si pongo un espacio en blanco, se brinca el siguiente scanf y no me permite poner la siguiente opcion. Despes lo cambie por gets, pero como no puedo leer numeros, tengo que poner otro scanf y me vuelve a saltar el problema

Gracias y saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con scanf

Publicado por pepe (32 intervenciones) el 25/11/2010 15:31:51
Cuando yo aprendí C el profesor nos desaconsejó el uso de scanf, de manera que me acostumbré a usar getch() o getche(), preferentemente la primera. De esta manera lees un caracter cada vez y decides en cada momento si te interesa tenerlo en cuenta, imprimirlo o añadirlo a una cadena como lo haría scanf.

Además cuando tengas que detectar teclas especiales como los cursores te vendrá muy bien, ya que se leen en forma de doble caracter.

Definitivamente recomiendo el uso de getch().
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con scanf

Publicado por angel (4 intervenciones) el 25/11/2010 16:15:47
Gracias por tu respuesta, perocon getch tambien puedo introducir numeros, pues cuando escribo un numero con scanf, y si le sigue un getch, tambien lo brinca, y disculpen mi ignorancia, pero para que sirve getche.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con scanf

Publicado por pepe (32 intervenciones) el 25/11/2010 17:32:50
Ok, tanto getch como getche sirven para capturar caracteres uno a uno según pulsemos las teclas del teclado. La diferencia esta en que getch (get char) no visualiza caracter en pantalla, getche (get char echo) si que lo visualiza.

Si queremos filtrar los caracteres numericos utilizaremos getch de la siguiente manera:

int Caracter;

do
{
Caracter = getch();
if( Caracter>=48 && Caracter<=57 ) Caracter=0;
printf("%c", Caracter);
}
while( Caracter!=13 ); // 13 es el caracter de Return
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar