Benutzereingaben lesen
Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 30 von 75.
Bisher haben wir Programme erstellt, in denen wir Werte direkt in unseren Code schreiben. Aber echte Programme müssen oft mit Benutzern interagieren und Informationen von ihnen erhalten.
In Rust erfolgt die Benutzereingabe über die std::io Bibliothek. Diese Bibliothek bietet Methoden zum Lesen verschiedener Eingabetypen, wie z. B. Ganzzahlen, Gleitkommazahlen und Zeichenfolgen.
Um die std::io-Bibliothek zu verwenden, müssen Sie diese zuerst importieren:
use std::io;Um Eingaben von einem Benutzer zu lesen, benötigen wir zwei Zeilen Code:
let mut my_var = String::new();
// Erstellt einen leeren String, um die Eingabe zu speichern
io::stdin().read_line(&mut my_var).unwrap();
// Liest die EingabeDies speichert den Eingabewert in der Variable my_var als String-Typ.
Wenn du eine Zahl erhalten möchtest, benötigst du einen zusätzlichen Schritt, um die Texteingabe in eine Zahl umzuwandeln:
let age: i32 = input.trim().parse().unwrap();Das .trim() wird benötigt, da beim Drücken der Eingabetaste ein Zeilenumbruchzeichen zur Eingabe hinzugefügt wird. Wenn zum Beispiel jemand „25“ eingibt und die Eingabetaste drückt, ist die tatsächliche Eingabe „25\n“. Das .trim() entfernt diese zusätzlichen Leerzeichen (Leerzeichen, Zeilenumbrüche usw.) sowohl am Anfang als auch am Ende der Eingabe.
Mach dir vorerst nicht zu viele Sorgen um unwrap() – wir werden später mehr darüber erfahren. Wisse nur, dass es uns hilft, potenzielle Fehler auf eine einfache (wenn auch nicht ideale) Weise zu handhaben.
Aufgabe
AnfängerSchreiben Sie ein Programm, das eine Eingabe vom Benutzer (dessen Namen) entgegennimmt und dann Hello, gefolgt von dem eingegebenen Namen des Benutzers und einem Ausrufezeichen ausgibt.
Wenn der Benutzer zum Beispiel Bob eingibt, ist die erwartete Ausgabe Hello, Bob!.
Sie müssen Folgendes tun:
- Erstellen Sie ein
String-Objekt, um die Eingabe zu lesen. - Fordern Sie den Benutzer auf, seinen Namen einzugeben: "
Enter your name:" - Lesen Sie den Namen des Benutzers mit der entsprechenden
std::io-Methode. - Geben Sie
Hello,gefolgt von dem gespeicherten Namen und einem Ausrufezeichen!am Ende aus.
Spickzettel
Um Benutzereingaben in Rust zu erhalten, importieren Sie die std::io-Bibliothek:
use std::io;Um eine String-Eingabe von einem Benutzer zu lesen:
let mut my_var = String::new();
io::stdin().read_line(&mut my_var).unwrap();Um eine String-Eingabe in eine Zahl umzuwandeln:
let age: i32 = input.trim().parse().unwrap();Die .trim()-Methode entfernt Leerzeichen (einschließlich Zeilenumbrüche durch Drücken der Eingabetaste) aus der Eingabe.
Probier es selbst
use std::io;
fn main() {
// Erstelle ein String-Objekt
let mut name = String::new();
// Fordere den Benutzer auf, seinen Namen einzugeben (verwende println)
// Lies den Namen des Benutzers
// Gib die Begrüßungsnachricht aus
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische Eingabe