读取用户输入
本课属于 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(),我们之后会学习它。你只要知道,它可以帮助我们以简单的方式处理潜在错误,不过这种方式并不理想。
挑战
入门编写一个程序,获取用户输入的姓名,然后输出 Hello, ,后面接用户输入的姓名和一个感叹号。
例如,如果用户输入 Bob,预期输出为 Hello, Bob!。
你需要:
- 创建一个
String对象来读取输入。 - 提示用户输入姓名:“
Enter your name:” - 使用适当的
std::io方法读取用户的姓名。 - 输出
Hello,,后面接存储的姓名,并在末尾加上感叹号!。
亲手试试
use std::io;
fn main() {
// 创建一个 String 对象
let mut name = String::new();
// 提示用户输入姓名(使用 println)
// 读取用户输入的姓名
// 打印问候语
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Rust 在线编译器