我的代码如下。我希望它会吐出类似以下内容:


  SN = 12345678 EX = 73 CW = 73马克= 73.0
  
  SN = 87654321 EX = 50 CW = 70马克= 60.0


但我得到:


  。
  
  。
  
  。
  
  SN = 12345678 EX = 73 CW = 73马克= 73.0
  
  。
  
  。
  
  SN = 87654321 EX = 50 CW = 70马克= 60.0


(带有额外的换行符(以句点表示))

我真的无法弄清楚这些来源。

请指出正确的方向!

class Main
{
    public static void main( String args[] )
    {
        int sN = 1;
        int cwMark;
        int exMark;
        double Mark;
        while ( sN != 0 )
        {
            sN = CIO.getInt();
            cwMark = CIO.getInt();
            exMark = CIO.getInt();
            Mark = ((double)(exMark + cwMark)/2);
            System.out.print("SN=");
            System.out.print( (int) sN );
            System.out.print(" EX=  ");
            System.out.print( (int) exMark );
            System.out.print(" CW=  ");
            System.out.print( (int) cwMark );
            System.out.print(" Mark =  ");
            System.out.print(Mark);
        }
    }
}


getInt定义为:

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

最佳答案

我不确定CIO是什么。您到底从哪里得到输入的?我可以推断出您是从控制台获取整数的,这将解释您所看到的内容:您从控制台获取输入,并打印到同一控制台。要输入整数,必须有人在某处打一个换行符,并且该换行符会回显到控制台。

我可能正在吸烟,但是我认为这与CIO的定义有关。

编辑:当您确认CIO与控制台进行交互时,现在很清楚。调用getInt时,最终将解析输入(换行符除外)。由于定义了控制台以回显它所获得的每个击键,因此必须在某处输出换行符(既用作输入定界符又用作换行符/换行符)……这就是为什么您在自己的键盘上看到换行符的原因输出。

例如,如果在该位置添加另一个getInt,则会在输出中看到4个换行符,而不是3个。

关于java - Java未按预期输出到终端(出现新行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12706642/

10-10 15:05