LoginSignup
3
2

More than 3 years have passed since last update.

ユーザーからの入力を受け取る

Last updated at Posted at 2020-03-02

std::io::stdin()

これはちょっと難しいので、Rustに慣れるまでは丸暗記で行くしかなさそうです。
使い方はこんな感じです。

fn main() {
    println!("何か入力してください。"); // 入力を促す案内を表示する

    let mut input = String::new(); // 入力した値を入れる変数

    // これが入力を受け取るコード。
    // 複雑。この3行にたくさんのロジックが詰め込まれています。
    std::io::stdin()
        .read_line(&mut input)
        .expect("Failed to read line");

    input = input.trim_end().to_owned(); // エンターキーで改行が末尾に入るので、改行をなくす

    println!("入力したのは「{}」です", input); // 入力した文字列をそのまま表示する。
}

丸暗記と言いましたが、暗記するくらいなら関数にしてしまいましょう。
my_read_line()関数を作ってみました。これなら簡単だし、見た目もすっきりしました。

fn main() {
    let input = my_read_line("何か入力してください"); // この1行で入力の案内と入力の受け取りをする
    println!("入力したのは「{}」です", input);
}

/// ユーザーの入力を受け取り、Stringを返す関数。
///
/// massage:入力を促すメッセージ
fn my_read_line(massage: &str) -> String {
    println!("{}", massage);
    let mut input = String::new();
    std::io::stdin()
        .read_line(&mut input)
        .expect("Failed to read line");
    input.trim_end().to_owned()
}

目次

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2