Menu
Coddy logo textTech

ユーザー入力の読み取り

CoddyのRustジャーニー「基礎」セクションの一部。レッスン 30/75。

これまでは、コードに値を直接書き込むプログラムを作成してきました。しかし、実際のプログラムでは、ユーザーと対話して情報を取得する必要があることがよくあります。

Rustでは、ユーザーからの入力の取得にはstd::ioライブラリを使用します。このライブラリは、整数、浮動小数点数、文字列など、さまざまな種類の入力を読み取るメソッドを提供します。

std::ioライブラリを使用するには、まずインポートする必要があります:

use std::io;

ユーザーから入力を読み取るには、2行のコードが必要です:

let mut my_var = String::new();
// 入力を格納するための空の文字列を作成します

io::stdin().read_line(&mut my_var).unwrap();
 // 入力を読み取ります

これにより、入力値が文字列型としてmy_var変数に格納されます。

数値を取得したい場合は、テキスト入力を数値に変換するための追加の手順が必要です。

let age: i32 = input.trim().parse().unwrap();

ユーザーがEnterキーを押すと入力に改行文字が追加されるため、.trim()が必要です。たとえば、誰かが「25」と入力してEnterキーを押すと、実際の入力は「25\n」になります。.trim()は、入力の先頭と末尾から余分な空白文字(スペース、改行など)を削除します。

今はunwrap()についてあまり心配しないでください。これは後で学びます。これが潜在的なエラーを簡単な(ただし理想的ではない)方法で処理するのに役立つことだけ知っておいてください。

challenge icon

チャレンジ

初心者

ユーザーから入力(名前)を受け取り、その後、ユーザーが入力した名前と感嘆符に続けてHello, を出力するプログラムを書いてください。

たとえば、ユーザーがBobを入力した場合、期待される出力はHello, Bob!です。

次のことを行う必要があります。

  1. Stringオブジェクトを作成して入力を読み取ります。
  2. ユーザーに名前の入力を促します: "Enter your name:"
  3. 適切なstd::ioメソッドを使用してユーザーの名前を読み取ります。
  4. 保存した名前に続けてHello, を出力し、最後に感嘆符!を付けます。

自分で試してみよう

use std::io;

fn main() {
    // Stringオブジェクトを作成する
    let mut name = String::new();
    
    // ユーザーに名前の入力を促す (printlnを使用)
    
    
    // ユーザーの名前を読み取る
    
    
    // 挨拶メッセージを表示する
    
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Rustオンラインコンパイラ