Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Почему сначала идет только ввод?


Автор: Fighter 2.8.2007, 06:27
Вот исходник:

Код

        try {
            PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out, "Cp866"), true);
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "Cp866"));
            int num1, num2, summ;
            String s;
            pw.print("Введите первое число: ");
            s = br.readLine();
            num1 = new Integer(new String(s));
            pw.print("Введите второе число: ");
            s = br.readLine();
            num2 = new Integer(new String(s));
            summ = num1 + num2;
            pw.println("Ну, короче, сумма равна: " + summ);
        }
        catch (Exception ex) {
            System.out.println("There were an error");
        }


При работе программы по логике, он должен сначала запрашивать ввод, а на самом деле сначала подряд вводятся 2 числа, и только потом выводятся сообщения, т.е. получается вместо

Введите первое число: 2
Введите второе число: 2
Ну, короче, сумма равна: 4

На самом деле вот как

2
2
Введите первое число:  Введите второе число:  Ну короче сумма равна 4

Добавлено через 2 минуты и 21 секунду
Мда, все разобрался, так как это идет работа с буферами, тут нужно flush использовать, вот так:

Код

        try {
            PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out, "Cp866"), true);
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "Cp866"));
            int num1, num2, summ;
            String s;
            pw.print("Введите первое число: ");
            pw.flush();
            s = br.readLine();
            num1 = new Integer(new String(s));
            pw.print("Введите второе число: ");
            pw.flush();
            s = br.readLine();
            num2 = new Integer(new String(s));
            summ = num1 + num2;
            pw.println("Ну, короче, сумма равна: " + summ);
        }
        catch (Exception ex) {
            System.out.println("There were an error");
        }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)