- Tema Autor
- #1
Hola que tal
Quiero saber si me pueden ayudar, hago un programa en consola en Java, donde debo pedir algunos datos, el problema es que cuando leo un char, el siguiente elemento no lo puedo leer, me brinca. Yo recuerdo que en C me pasaba eso y lo solucionaba con un fflush(stdin); pero ahora en Java no se =S. Dejo parte de mi código.
Y en la consola recibo esto:
Como ven, no pude Ingresar la clave
¿Alguien sabe como solucionarlo?
Por cierto, la clase CLeedatos es una que hemos hecho con el profesor, la he probado en varios programa y nunca me habia fallado.
Gracias de antemano
Saludos :mota:
Quiero saber si me pueden ayudar, hago un programa en consola en Java, donde debo pedir algunos datos, el problema es que cuando leo un char, el siguiente elemento no lo puedo leer, me brinca. Yo recuerdo que en C me pasaba eso y lo solucionaba con un fflush(stdin); pero ahora en Java no se =S. Dejo parte de mi código.
Código:
System.out.println( "Ingresar la edad: " );
edad = Integer.parseInt( CLeeDatos.LeeDato() );
System.out.println( "Ingresar el sexo(F,M): " );
try {
sexo = ( char ) System.in.read();
} catch ( java.io.IOException ioex ) {
System.out.println( "Error en la lectura: " +
ioex.getMessage() );
break;
}
sexo = Character.toLowerCase( sexo );
System.out.println( "Ingresar la clave: " );
clave = CLeeDatos.LeeDato();
System.out.println( "Ingresar el médico: " );
medico = CLeeDatos.LeeDato();
Y en la consola recibo esto:
Código:
Ingresar la edad:
20
Ingresar el sexo(F,M):
M
Ingresar la clave:
Ingresar el médico:
Que paso aqui?
Como ven, no pude Ingresar la clave

Por cierto, la clase CLeedatos es una que hemos hecho con el profesor, la he probado en varios programa y nunca me habia fallado.
Código:
package MisClases;
import java.io.*;
/**
*
* @author Ricardo
*/
public class CLeeDatos
{
public static String LeeDato()
{
String sdato = "";
InputStreamReader isr = new InputStreamReader( System.in );
BufferedReader flujoE = new BufferedReader( isr );
try
{
sdato = flujoE.readLine();
}
catch( IOException e )
{
System.err.println( "Error " + e.getMessage() );
}
return sdato;
}
}
Gracias de antemano
Saludos :mota: