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

System.in.read

01.07.2016, 21:01. Показов 6638. Ответов 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,498
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru