Чтение ввода пользователя
Часть раздела Fundamentals путешествия по Rust на Coddy — урок 30 из 75.
До сих пор мы создавали программы, в которых напрямую записывали значения в коде. Но реальным программам часто требуется взаимодействовать с пользователями и получать от них информацию.
В Rust получение ввода от пользователя осуществляется с помощью библиотеки std::io. Эта библиотека предоставляет методы для чтения различных типов ввода, таких как целые числа, числа с плавающей запятой и строки.
Чтобы использовать библиотеку std::io, вам сначала нужно импортировать её:
use std::io;Чтобы прочитать ввод от пользователя, нам понадобятся две строки кода:
let mut my_var = String::new();
// Создает пустую строку для хранения ввода
io::stdin().read_line(&mut my_var).unwrap();
// Считывает вводЭто сохранит введенное значение в переменной my_var в виде строкового типа.
Если вы хотите получить число, вам понадобится дополнительный шаг, чтобы преобразовать введенный текст в число:
let age: i32 = input.trim().parse().unwrap();Метод .trim() необходим, потому что когда пользователи нажимают Enter, к их вводу добавляется символ новой строки. Например, если кто-то вводит "25" и нажимает Enter, фактический ввод будет "25\n". Метод .trim() удаляет эти лишние пробельные символы (пробелы, символы новой строки и т. д.) как в начале, так и в конце ввода.
Не беспокойтесь слишком сильно о unwrap() пока что — мы узнаем об этом позже. Просто знайте, что это помогает нам обрабатывать потенциальные ошибки простым (хотя и не идеальным) способом.
Задание
НовичокНапишите программу, которая получает ввод от пользователя (его имя), а затем выводит Hello, , за которым следует введенное пользователем имя и восклицательный знак.
Например, если пользователь вводит Bob, ожидаемый результат — Hello, Bob!.
Вам потребуется:
- Создать объект
Stringдля чтения ввода. - Предложить пользователю ввести свое имя: "
Enter your name:" - Прочитать имя пользователя, используя соответствующий метод
std::io. - Вывести
Hello,, за которым следует сохраненное имя и восклицательный знак!в конце.
Шпаргалка
Чтобы получить ввод от пользователя в Rust, импортируйте библиотеку std::io:
use std::io;Чтобы прочитать строковый ввод от пользователя:
let mut my_var = String::new();
io::stdin().read_line(&mut my_var).unwrap();Чтобы преобразовать строковый ввод в число:
let age: i32 = input.trim().parse().unwrap();Метод .trim() удаляет пробельные символы (включая символы новой строки после нажатия Enter) из ввода.
Попробуйте сами
use std::io;
fn main() {
// Создать объект String
let mut name = String::new();
// Предложить пользователю ввести свое имя (используйте println)
// Прочитать имя пользователя
// Вывести приветственное сообщение
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический ввод