0

これを送信しようとしたところ、 ** END OF FILE detected on input -- EXIT **というエラーがポップアップ表示されました。

これが何を意味するのかわかりません。明確にするために、値が0でない限り、ループでデータが入力されるようにシステムを設定しようとしています。ありがとう。

これは私のコードです:

class Main
{
    public static void main( String args[] )
    {
        int SN = 1;
        while ( SN != 0)
        {
            System.out.print("#SN : " );
            SN = BIO.getInt();
            System.out.print("#CW : " );
            int CW = BIO.getInt();
            System.out.print("#EX : " );
            int EX = BIO.getInt();
            double Mark = CW + EX;
            System.out.printf("SN= " + SN + "EX= " + EX + "CW= " + CW + "Mark= " + "%6.1f", (double) Mark / 2      );
        }
    }
}

これはバイオコードです:

class BIO
{
  private static final int EOF  = -1;
  private static final int NONE = -2;
  private static int nextChar = NONE;
  private static boolean EOFdetected = false;

  public static String getLineBASE()
  {
    String line = "";                                 // Line read 
    int    ch;                                        // Read ch 

    try
    {
      ch = System.in.read();                          // No next char 

      if ( ch == EOF ) 
      {
        System.out.println("**** END OF FILE " + 
                           "detected on input -- EXIT ****" );
        System.exit(-1);
      }
      while( ch != '\n'  )                            // Read loop 
      {
        if ( ch == EOF )
        {
          EOFdetected = true;
          return line;                                //  exit 
        }
        line = line + (char) ch;                      //  form line 
        ch = System.in.read();                        //  next ch 
      }
      return line;                                    // return line 
    }
    catch( IOException exp )                          // Problem 
    {
      System.exit(-1);                                // Exit ** 
    }
    return "";                                        // Blank line 
  }

 public static String getLine()
  {
    String line = getLineBASE();                      // Read line 
    //System.out.println( line ); 
    return line;
  }


  public static String getString()
  {
    String line = getLine();                          // Read line 
    return line.trim();
  }

  public static double getDouble()
  {
    String res = getLine();                           // Read line 
    double value = 0.0;                               // 
    try
    {
      value = Double.parseDouble( res.trim() );       // Convert 
    }
    catch ( NumberFormatException ex )                // Problem 
    {                                                 //  ignore 
    }
    return value;                                     // return 
  }

  public static int getInt()
  {
    String res = getLine();                           // Read line 
    int value = 0;                                    // 
    try
    {
      value = Integer.parseInt( res.trim() );         // Convert 
    }
    catch ( NumberFormatException ex )                // Problem 
    {                                                 //  ignore 
    }
    return value;                                     // return 
  }

}
4

1 に答える 1

0
 try
{
  ch = System.in.read();  //reads from keyboard.

  if ( ch == EOF ) 
  {
    System.out.println("**** END OF FILE " + 
                       "detected on input -- EXIT ****" );
    System.exit(-1);
  }
}

このスニペットは、キーボードからの入力を読み取ります。ファイルから何かを読みたい場合 (EOF があるため、そうであると思います)、Scannerクラスを検索します。これがあなたが望んでいたものではない場合、申し訳ありませんが、私は仮定を立てているだけです.

于 2012-07-16T19:19:40.573 に答える