DEITLE の本からの単純なプログラムは、5 つの整数を読み取り、プログラムはその数の隣接するアスタリスクを含む行を出力する必要があります.ie (num = 5 の場合、出力 *****) . 同じソリューションを c++ でテストしたところ、問題なく動作しました。それでも、ここではバッファが奇妙な値 (50 ?) を保持しています。問題は buffer の使用にあると思いますが、なぜこれが起こっているのか知りたいですか?
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
import java.io.*;
import java.util.Date;
/**
* Program that reads five numbers and print starts equal to each number
*
* @author Hassan
*/
public class JavaApplication1
{
public static void main(String[] args)
{
int num ;
java.io.InputStreamReader ins= new InputStreamReader(System.in);
java.io.BufferedReader bfr = new BufferedReader (ins);
try
{
for(int i=0;i<5;i++)
{
System.out.println("Please Enter a number");
num = bfr.read();
System.out.print(num);
for(int j=0;j<num;j++)
{ System.out.print("* "); }
System.out.println("\n");
}
}
catch(Exception E )
{System.out.println(E.getMessage()); }
}
}
編集:問題は解決されましたが、プログラムは5つの入力のうち3つだけを読み取っています。つまり、入力を読み取り、次の入力を無視しています