Menu
Coddy logo textTech

Чтение ввода пользователя

Часть раздела 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() пока что — мы узнаем об этом позже. Просто знайте, что это помогает нам обрабатывать потенциальные ошибки простым (хотя и не идеальным) способом.

challenge icon

Задание

Новичок

Напишите программу, которая получает ввод от пользователя (его имя), а затем выводит Hello, , за которым следует введенное пользователем имя и восклицательный знак.

Например, если пользователь вводит Bob, ожидаемый результат — Hello, Bob!.

Вам потребуется:

  1. Создать объект String для чтения ввода.
  2. Предложить пользователю ввести свое имя: "Enter your name:"
  3. Прочитать имя пользователя, используя соответствующий метод std::io.
  4. Вывести 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)
    
    
    // Прочитать имя пользователя
    
    
    // Вывести приветственное сообщение
    
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals