Класс Stdin
Класс Stdin представляет стандартный поток ввода
в Dart и находится в библиотеке dart:io.
С его помощью программа может получать данные,
которые вводятся пользователем с клавиатуры
или перенаправляются в процесс извне.
Класс предоставляет как синхронные, так и асинхронные
методы для чтения данных, а также свойства для
настройки поведения потока ввода.
Доступ к объекту класса Stdin осуществляется
через глобальное свойство stdin, которое
автоматически доступно при импорте библиотеки
dart:io. Объект stdin является
экземпляром класса Stdin и не требует
создания через конструктор.
Синтаксис
import 'dart:io';
Stdin stdin
Основные свойства
Класс Stdin обладает следующими свойствами:
stdin.echoMode // управление эхом ввода
stdin.echoNewlineMode // управление эхом перевода строки
stdin.hasTerminal // есть ли терминал
stdin.lineMode // построчный режим чтения
Пример
Давайте прочитаем одну строку, введённую пользователем,
с помощью метода readLineSync и выведем её на экран:
import 'dart:io';
void main()
{
print('Enter a string:');
String? line = stdin.readLineSync();
print('You entered: $line');
}
Если пользователь введёт строку "abcde", то результат выполнения кода будет следующим:
"Enter a string:"
"abcde"
"You entered: abcde"
Пример
Давайте прочитаем число, введённое пользователем, и преобразуем его из строки в целое число:
import 'dart:io';
void main()
{
print('Enter a number:');
String? line = stdin.readLineSync();
int number = int.parse(line!);
print(number + 1);
}
Если пользователь введёт число 5, то результат выполнения кода будет следующим:
"Enter a number:"
"5"
6
Пример
Давайте прочитаем несколько строк в цикле до тех пор, пока пользователь не введёт пустую строку:
import 'dart:io';
void main()
{
List<String> lines = [];
while (true)
{
String? line = stdin.readLineSync();
if (line == null || line.isEmpty)
{
break;
}
lines.add(line);
}
print(lines);
}
Если пользователь введёт строки "abcde", "12345" и пустую строку, то результат выполнения кода будет следующим:
[abcde, 12345]
Смотрите также
-
метод
readLineSync,
который синхронно читает строку из потока ввода -
класс
Stdout,
который представляет стандартный поток вывода -
класс
stderr,
который представляет стандартный поток ошибок -
свойство
stdin,
которое предоставляет доступ к стандартному вводу