cual es el error

quetzal
28 de Junio del 2006
alquien me puede decir cual es el error este es el codigo
y si corre solo que ala hora de introducir un dato me marca
esto

Exception in thread "main" java.io.IOException: Controlador
no valido
at java.io.FileInputStream.skin(Native Method) a
at java.io.BufferedInputStream.skip(BufferedInputStream.java:344
at calando main(calando.java:29

ESTE ES EL CODIGO se supome que me lee diez
calificaciones con letras y va sumando el valor de las
calificaciones y me saca la media.

import java.io.*;

public class calando {
public static void main( String args[] ) throws IOException
{
int counter, grade, total, average;

// fase de inicialización
total = 0;
counter = 1;

// fase de procesamiento
while ( counter <= 10 ) {
System.out.print( "Teclee calificacion de letra: " );
System.out.flush();
grade = System.in.read();

if ( grade == 'A' )
total = total + 4;
else if ( grade == 'B' )
total = total + 3;
else if ( grade == 'C' )
total = total + 2;
else if ( grade == 'D' )
total = total + 1;
else if ( grade == 'F' )
total = total + 0;

System.in.skip( 1 ); // Saltar el carácter de nueva línea
counter = counter + 1;
}

// fase de terminación
average = total / 10; // división entera
System.out.println( "El promedio del grupo es " + average );
}
}

Diego
28 de Junio del 2006
En una clase de java.io que trabaja a nivel de bytes, como System.in, cuando llamas a skip, te saltas n bytes, mientras que un char son dos bytes. Puedes saltarte dos bytes, o mejor, utilizar alguna subclase de java.io.Reader o java.util.Scanner.

Espero que te sirva.

quetzal
28 de Junio del 2006
gracias