Menu
CoddyTech

读取用户输入

本课属于 Coddy Rust 学习旅程的“基础知识”单元。第 30 课,共 75 课。

到目前为止,我们一直在编写直接在代码中写入值的程序。但实际的程序通常需要与用户交互并获取他们提供的信息。

在 Rust 中,使用 std::io 库来获取用户输入。这个库提供了读取不同类型输入的方法,例如整数、浮点数和字符串。

要使用 std::io 库,你首先需要导入它:

use std::io;

要读取用户输入,我们需要两行代码:

let mut my_var = String::new();
// 创建一个空字符串,用来存储输入

io::stdin().read_line(&mut my_var).unwrap();
 // 读取输入

这会将输入值以字符串类型存储在 my_var 变量中。

如果你想获取一个数字,就需要额外执行一步,将文本输入转换为数字:

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

需要使用 .trim(),因为用户按下 Enter 时,输入中会添加一个换行符。例如,如果有人输入 "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 在线编译器