Составители:
Рубрика:
int code = 0;
try {
code = Syatem.in.read();
}
catch(java.io.IOException e) {}
Вы знаете, что ввод с клавиатуры буферизован, т.е. вводимые символы
помещаются в буфер в ОЗУ, а программа считывает их из этого буфера.
Предположим, что в буфер помещено 10 символов, а считано лишь 5. Здесь
не возникает проблем. Но, если вновь обратиться к функции чтения симво-
лов, введенных
с помощью клавиатуры (например, read()), то функция вернет
не вновь введенный символ, а тот, что остался в буфере. Поэтому стандарт-
ный прием при вводе данных со стандартного устройства - это очистка буфе-
ра и, лишь затем, запрос на чтение символов. Класс InputStream содержит два
метода: available(), возвращающий количество байт, содержащихся на данный
момент в буфере
, и skip(), удаляющий указанное количество байт из буфера.
Итог:
int code = 0;
try {
System.in.skip( System.in.available() ); // очистить буфер клавиатуры
code = System.in.read(); // получить код нажатой клавиши
}
catch(java.io.IOException e) {}
Теперь можно написать собственный метод, позволяющий вводить с
клавиатуры целые числа из диапазона, например, от -99 999 999 до 999 999
999. Для хранения таких чисел достаточно иметь массив из девяти байт. Кро-
ме того, удобно
использовать коды символов, '0' - 48, '1' - 49, …, '9' - 57.
int code = 0; try { code = Syatem.in.read(); } catch(java.io.IOException e) {} Вы знаете, что ввод с клавиатуры буферизован, т.е. вводимые символы помещаются в буфер в ОЗУ, а программа считывает их из этого буфера. Предположим, что в буфер помещено 10 символов, а считано лишь 5. Здесь не возникает проблем. Но, если вновь обратиться к функции чтения симво- лов, введенных с помощью клавиатуры (например, read()), то функция вернет не вновь введенный символ, а тот, что остался в буфере. Поэтому стандарт- ный прием при вводе данных со стандартного устройства - это очистка буфе- ра и, лишь затем, запрос на чтение символов. Класс InputStream содержит два метода: available(), возвращающий количество байт, содержащихся на данный момент в буфере, и skip(), удаляющий указанное количество байт из буфера. Итог: int code = 0; try { System.in.skip( System.in.available() ); // очистить буфер клавиатуры code = System.in.read(); // получить код нажатой клавиши } catch(java.io.IOException e) {} Теперь можно написать собственный метод, позволяющий вводить с клавиатуры целые числа из диапазона, например, от -99 999 999 до 999 999 999. Для хранения таких чисел достаточно иметь массив из девяти байт. Кро- ме того, удобно использовать коды символов, '0' - 48, '1' - 49, …, '9' - 57.
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »