Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
