Comment lire un entier saisi par l'utilisateur dans la Rouille 1.0?
De questions /réponses que j'ai trouvé sont tous basés sur from_str
(comme La lecture des données saisies par l'utilisateur à partir de la console une fois efficacement), mais apparemment from_str(x)
a changé dans x.parse()
à Rust 1.0. Comme un débutant, il n'est pas évident de savoir comment la solution d'origine doit être adapté à ce changement en compte.
Comme de la Rouille 1.0, ce qui est la façon la plus simple pour obtenir un nombre entier d'entrée de l'utilisateur?
Vous devez vous connecter pour publier un commentaire.
Voici une version avec toutes les option d'annotations de type et de gestion d'erreur qui peut être utile pour les débutants comme moi:
Probablement la partie la plus facile serait d'utiliser la text_io caisse et à écrire:
Si vous avez besoin de lire plus d'une valeur en même temps, vous pourriez avoir besoin d'utiliser la Rouille tous les soirs.
Voir aussi:
text_io
dev ici. @VladimirMatveev est droit,text_io
s'exécute sur stable si vous ne lisez pas les tuples, mais seulement une valeur unique parread!()
invocation. Il exige en fait tous les soirs pour plusieurs valeurs. Je vais mettre à jour le github description.text_io
suggestion est grande, mais je ne suis pas en mesure d'imprimer des déclarations de fonctions avant d'utiliserread!()
read!()
?println!()
avant d'essayer d'utiliserread!()
detext_io
, les éléments qui sont censés imprimer à partir deprintln!()
ne pas être imprimé jusqu'à ce que après laread!()
méthode.Voici quelques possibilités (Rouille 1.7):
Ces de rechange vous à la cérémonie de filtrage sans dépendre de bibliothèques supplémentaires.
Option::expect
au lieu dematch
pour être plus concis et échouer en cas d'erreur" serait l'équivalent. une réponse complète rend plus facile pour le lecteur — cette réponse est la manque de l'use std::io
etfn main
que l'on a accepté de répondre a et un vrai débutant voudrais.parse
est plus ou moins le même, c'estread_line
c'est désagréable maintenant.Si vous cherchez un moyen pour lire l'entrée pour le but de la concurrence de la programmation dans des sites web comme codechef ou codeforces où vous n'avez pas accès à
text_io
.- Je utiliser la macro suivante pour lire l'entrée standard stdin les différentes valeurs:
Dans les principales
Vous pouvez créer une méthode d'extension si vous voulez une syntaxe simple: