Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 01.07.2016
Сообщений: 42

System.in.read

01.07.2016, 21:01. Показов 6599. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня.
хотел написать простую программку в качестве обучения, но столкнулся с непонятной проблемой...
Java
1
2
3
4
5
6
7
8
9
10
11
public class Moivesnalune {
 
    public static void main(String[] args) 
            throws java.io.IOException {
        // TODO Auto-generated method stub
        int ves1;
        System.out.print("Введите свой вес:");
            ves1 = (int) System.in.read();
        System.out.println("Ваш вес = " + ves1 + " кг");
    }
}
этот код почему то "имеет" свой диапазон и на ввод в строку 100, переводит его в 49... если ввести 50, например, то получается 53... помогите понять, пожалуйста, что не так...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.07.2016, 21:01
Ответы с готовыми решениями:

System.in.read() в условии цикла for
Здравствуйте, изучаю язык Java по книге Г. Шилдта "Java 8. Руководство для начинающих". На одном из этапов изучения столкнулась со...

System.in.read как работает?
Мне дали задания заполнить массив вводом с консоли. И я нашёл такую штуку, как System.in.read(). И думал уже всё нормально, как случается...

Сломал мозг об System.in.read()
Добрый день всем. Который день бьюсь о загадку с выражением inp = (int) System.in.read(); в консоли. Ввожу, к примеру, число 45,...

5
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
01.07.2016, 21:16
System.in.read считывает один байт.

Для твоего конкретного случая можно использовать Scanner
Java
1
2
Scanner input = new Scanner(System.in);
int weight = input.nextInt();
1
1 / 1 / 0
Регистрация: 01.07.2016
Сообщений: 42
01.07.2016, 21:22  [ТС]
пока ждал, погуглил и нашел вот такую ядреную конструкцию :
int k = Integer.valueOf(System.in.read());
поможет такое? я только начал учить язык, любой опыт будет полезен. до Scanner еще в книге не дошел

Добавлено через 2 минуты
проверил) не, не катит... буду тогда со сканером делать, благодарю)
0
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
01.07.2016, 21:31
slim1979, нет, это не для этого. Через read() ты бы считывал для числа 100, три байта, то есть вызывал бы этот метод 3 раза, потом ты бы переводил этот байт в символ, и потом бы его конвертил в цифру, и потом бы склеивал. Так что не знаю что за книга, но по-моему не с того начинает учить.
0
1 / 1 / 0
Регистрация: 01.07.2016
Сообщений: 42
01.07.2016, 21:41  [ТС]
я Шилдта читаю. просто читать скучно, я решил поискать задачки, чтобы какой-никакой практикум иметь... а этот метод он в книге применял, в коде и написал, что
что в данном случае метод System.in.read() служит для получения результата выбора, сделанного пользователем. Этот метод вводит символы из стандартного потока ввода, откуда они возвращаются в виде целочисленных значений
вот в таком коде...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Menu {
  public static void main(String args[]) 
    throws java.io.IOException {
    char choice;
 
    do {
      System.out.println("Help on:");
      System.out.println("  1. if");
      System.out.println("  2. switch");
      System.out.println("  3. while");
      System.out.println("  4. do-while");
      System.out.println("  5. for\n");
      System.out.println("Choose one:");
      choice = (char) System.in.read();
    } while( choice < '1' || choice > '5');
в общем, я, видимо, немного поторопился)

Добавлено через 3 минуты
хотя у него же получилось... он дальше switch переключал из данных от ввода...
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
06.07.2016, 02:37
Вот для примера когда-то тренировался:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
 *  Программа дамонстрирует ввод-вывод
 
 
 */
package io_out_study;
import java.io.*;
/**
 *
 *  
 */
public class BRRead {
    public static void main(String[] args) throws IOException {
        char c;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        System.out.println("Вводите символы, q - для выхода");
        // читать символы пока не встретится q
        do{
         c = (char) br.read();
            System.out.println(c);
        }while(c!='q');
    }
}

работа с BufferedReader:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
 *  
 *   работа с BufferedReader
 *  
 */
package io_out_study;
import java.io.*;
/**
 *
 
 */
public class BRReadLines {
    public static void main(String[] args) throws IOException{
        // создать BufferedReader с использованием System.in
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        System.out.println("Вводите строки текста");
        System.out.println("Введите 'стоп' для завершения");
        do{
            str = br.readLine();
            System.out.println(str);
        }while(!str.equals("стоп"));
    }
}
работа с файлами:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package io_out_study;
import java.io.*;
/**
 *
 
 */
public class ShowFile {
    public static void main(String[] args) {
        int i;
        FileInputStream fin;
        // убеждаемя что имя файла указано
        if(args.length != 1){
            System.out.println("Использование ShowFile Файл");
            return;
        }
        // попытка открыть файл
        try{
            fin = new FileInputStream(args[0]);
            
        }catch (FileNotFoundException e){
            System.out.println("Не могу открыть файл");
            return;
        }
        // теперь файл открыт и готов к чтению
        try{
                do{
                 i = fin.read();
                 if(i != -1 ) System.out.println((char)i);
                } while(i != -1 );
        }catch(IOException e){
                System.out.println("Ошибка чтения файла");
                } finally{
        
        // закрыть файл при выходе из блока try
        try{
            fin.close();
            }catch(IOException e){
            System.out.println("Ошибка закрытия файла");
            }
        }
        
        
    }
}

показать файл:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
 * ShowFile02 использует оператор try - с - ресурсами
 * Этот код требует JDK 7.0
 */
package io_out_study;
import java.io.*;
/**
 *
 
 */
public class ShowFile02 {
    public static void main(String[] args) {
        int i;
         // убеждаемя что имя файла указано
        if(args.length != 1){
            System.out.println("Использование ShowFile Файл");
            return;
        }
        // следующий код использует оператор try-c-ресурсами
//        чтобы открыть файл, а затем атоматически закрыватье его, когда
// блок try завершится
    try(FileInputStream fin = new FileInputStream(args[0])){
            do{
            i=fin.read();
            if(i!=-1) System.out.println((char)i);
            } while(i!=-1);
    } catch(FileNotFoundException e){
        System.out.println("Файл не найден.");
    } catch(IOException e){
        System.out.println("Произошла ошибка I/O");
    }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2016, 02:37
Помогаю со студенческими работами здесь

Ввод значений функцией System.in.read()
Здравствуйте! Код: package lab3; import java.io.IOException; import java.util.HashMap; import java.util.Map; public...

Считается ли Enter отдельным символом в System.in.read()?
Доброго дня, Есть такая маленькая програмка, которая должна подсчитать из введённых символов количество пробелов и выдать результат. ...

Компилятор пропускает System.in.read и выполняет программу дальше
Здравствуйте, форумчане import java.io.IOException; import java.security.cert.*; class kalkulator { public static void...

Кто управляет открытием/закрытием System.in/System.out
System.in/System.out это просто InputStream/PrintStream То бишь это потоки. А с потоками же надо аккуратно - их надо открывать,...

Как синхронизировать System.out и System.err?
Почему выводятся вперемешку сообщения от System.out.println(...) и System.err.println(...), даже после того, как создал и вызываю методы:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru