Odczytywanie danych od użytkownika
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 30 z 75.
Do tej pory tworzyliśmy programy, w których bezpośrednio wpisywaliśmy wartości w kodzie. Jednak rzeczywiste programy często muszą wchodzić w interakcję z użytkownikami i uzyskiwać od nich informacje.
W Rust pobieranie danych wejściowych od użytkownika odbywa się za pomocą biblioteki std::io. Biblioteka ta udostępnia metody do odczytywania różnych typów danych wejściowych, takich jak liczby całkowite, liczby zmiennoprzecinkowe i ciągi znaków.
Aby użyć biblioteki std::io, najpierw musisz ją zaimportować:
use std::io;Aby odczytać dane wprowadzone przez użytkownika, potrzebujemy dwóch wierszy kodu:
let mut my_var = String::new();
// Tworzy pusty ciąg znaków do przechowania danych wejściowych
io::stdin().read_line(&mut my_var).unwrap();
// Odczytuje dane wejścioweSpowoduje to zapisanie wartości wejściowej w zmiennej my_var typu tekstowego.
Jeśli chcesz uzyskać liczbę, musisz wykonać dodatkowy krok, aby przekonwertować tekst wejściowy na liczbę:
let age: i32 = input.trim().parse().unwrap();Metoda .trim() jest potrzebna, ponieważ gdy użytkownicy naciskają Enter, do ich danych wejściowych dodawany jest znak nowej linii. Na przykład, jeśli ktoś wpisze „25” i naciśnie Enter, rzeczywiste dane wejściowe to „25\n”. Metoda .trim() usuwa te dodatkowe białe znaki (spacje, znaki nowej linii itp.) z początku i końca danych wejściowych.
Na razie nie przejmuj się zbytnio unwrap() — nauczymy się o nim później. Na razie wystarczy wiedzieć, że pomaga nam w prosty (choć nieidealny) sposób obsługiwać potencjalne błędy.
Wyzwanie
PoczątkującyNapisz program, który pobiera dane od użytkownika (jego imię), a następnie wyświetla Hello, , po którym następuje podane przez użytkownika imię i wykrzyknik.
Na przykład, jeśli użytkownik wpisze Bob, oczekiwany wynik to Hello, Bob!.
Musisz:
- Utworzyć obiekt
Stringdo odczytu danych wejściowych. - Poprosić użytkownika o wpisanie imienia: "
Enter your name:" - Odczytać imię użytkownika za pomocą odpowiedniej metody
std::io. - Wyświetlić
Hello,, po którym następuje zapisane imię, a na końcu wykrzyknik!.
Spróbuj swoich sił
use std::io;
fn main() {
// Utwórz obiekt String
let mut name = String::new();
// Poproś użytkownika o podanie imienia (użyj println)
// Odczytaj imię użytkownika
// Wyświetl wiadomość powitalną
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online