Error con un bucle de entrada de datos por teclado

Fiz
30 de Marzo del 2008
Hola a todos,

Estoy empezando a programar con Java y estoy haciendo un ejercicio que lee tres números consecutivamente en pantalla para almacenarlos en tres variables distintas, pero al ejecutar este bucle, después de la primera iteración me da error de formato. Parece como si la segunda vez no esperase la entrada de datos en el teclado y enviase una cadena vacia a la variable.

Alguien puede ayudarme?

public static void main(String[] args) throws IOException {
int numeros []=new int [3];
char c;
String cadena= new String();
for (int n=0;n<=2;n++) {
System.out.println("Introduzca un número, por favor...");
c= (char) System.in.read();
cadena=Character.toString(c);
numeros[n]= Integer.parseInt(cadena);
cadena="";
}

ozito
30 de Marzo del 2008
Flz:
No espera a recoger los datos de entrada porque estás leyendo caracteres y el retorno de carro (Enter ó Return) también los cuenta y por eso da error de formato, te aconsejo que utilices el método readLine de la clase BufferedReader:

public static void main(String[] args) throws IOException {
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

int numeros []=new int [3];
String cadena= new String();

for (int n=0;n<=2;n++) {
System.out.println("Introduzca un número, por favor...");
cadena = teclado.readLine();
numeros[n]= Integer.parseInt(cadena);
}
}