Lire la saisie utilisateur
Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 30 sur 75.
Jusqu'à présent, nous avons créé des programmes dans lesquels nous écrivons directement des valeurs dans notre code. Mais les programmes réels ont souvent besoin d'interagir avec les utilisateurs et d'obtenir des informations de leur part.
En Rust, la récupération de la saisie d'un utilisateur se fait à l'aide de la bibliothèque std::io. Cette bibliothèque fournit des méthodes pour lire différents types de saisie, tels que des entiers, des nombres à virgule flottante et des chaînes de caractères.
Pour utiliser la bibliothèque std::io, vous devez d'abord l'importer :
use std::io;Pour lire une entrée d'un utilisateur, nous avons besoin de deux lignes de code :
let mut my_var = String::new();
// Crée une chaîne vide pour stocker l'entrée
io::stdin().read_line(&mut my_var).unwrap();
// Lit l'entréeCeci stockera la valeur d'entrée dans la variable my_var en tant que type chaîne de caractères.
Si vous voulez obtenir un nombre, vous avez besoin d'une étape supplémentaire pour convertir la saisie de texte en un nombre :
let age: i32 = input.trim().parse().unwrap();Le .trim() est nécessaire car lorsque les utilisateurs appuient sur Entrée, un caractère de nouvelle ligne est ajouté à leur saisie. Par exemple, si quelqu'un tape "25" et appuie sur Entrée, la saisie réelle est "25\n". Le .trim() supprime ces caractères d'espacement supplémentaires (espaces, sauts de ligne, etc.) au début et à la fin de la saisie.
Ne vous inquiétez pas trop pour unwrap() pour l'instant - nous l'étudierons plus tard. Sachez simplement que cela nous aide à gérer les erreurs potentielles de manière simple (bien que non idéale).
Défi
DébutantÉcrivez un programme qui récupère une saisie de l'utilisateur (son nom), puis affiche Hello, suivi du nom saisi par l'utilisateur et d'un point d'exclamation.
Par exemple, si l'utilisateur saisit Bob, la sortie attendue est Hello, Bob!.
Vous devrez :
- Créer un objet
Stringpour lire la saisie. - Demander à l'utilisateur de saisir son nom : "
Enter your name:" - Lire le nom de l'utilisateur en utilisant la méthode
std::ioappropriée. - Afficher
Hello,suivi du nom stocké et d'un point d'exclamation!à la fin.
Aide-mémoire
Pour obtenir une saisie utilisateur en Rust, importez la bibliothèque std::io :
use std::io;Pour lire une chaîne de caractères saisie par un utilisateur :
let mut my_var = String::new();
io::stdin().read_line(&mut my_var).unwrap();Pour convertir une saisie de type chaîne en un nombre :
let age: i32 = input.trim().parse().unwrap();La méthode .trim() supprime les caractères d'espacement (y compris les sauts de ligne après avoir appuyé sur Entrée) de la saisie.
Essayez vous-même
use std::io;
fn main() {
// Créer un objet String
let mut name = String::new();
// Demander à l'utilisateur d'entrer son nom (utiliser println)
// Lire le nom de l'utilisateur
// Afficher le message de salutation
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Entrées/Sorties de base
Afficher dans la consoleLire la saisie utilisateurRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 33Variables - Partie 2
Déclaration de typeConventions de nommageInférence de typeRécapitulatif - Initialiser des variablesConversion de type9Boucles
Boucle For sur une sérieBoucle WhileBreakContinueBoucles imbriquéesÉtiquettes de boucleBoucle infinieRécapitulatif - Entrée dynamique12Bases des tableaux
Déclaration de tableauxTableau comme paramètreAccès aux élémentsModification de tableauxRécapitulatif - Affichage formaté d'un tableau15Opérations sur les chaînes
Méthodes de chaînesMacro format!Conversion de chaînesRécapitulatif - Format