输入输出
任务: 请实现一个程序就可以在终端获取你的名字 , 并输出 hello,你的名字! , 要处理掉输入名字两段的空格 , 并且特殊处理一下空的输入
初始化项目
首先,我们需要在 Rust 中创建一个新的项目。打开终端,执行以下命令来创建一个新的项目:
$ cargo new greeting_app
$ cd greeting_app
这将在当前目录下创建一个名为 greeting_app 的新文件夹,并初始化一个包含示例代码的 Rust 项目。
编写代码
在项目中找到 src/main.rs 文件,这是我们的程序入口。我们将编辑此文件。
use std::io; // 导入 Rust 标准库中的输入输出模块
fn main() {
// 提示用户输入名字
println!("请输入你的名字:");
// 创建一个新的可变变量来存储用户的输入
let mut name = String::new();
// 读取用户输入并存储到 name 变量中
io::stdin()
.read_line(&mut name) // 获取用户输入的一行
.expect("读取输入失败");
// 去掉输入字符串末尾的换行符
let name = name.trim();
// 输出问候语
println!("你好,{}!", name);
}
解释
- 导入
std::io模块:- 我们需要这个模块来处理用户的输入。
std::io::stdin()用于从标准输入读取数据。
- 我们需要这个模块来处理用户的输入。
println!宏:println!是一个宏,用于打印到控制台。它会自动添加一个换行符。
- 创建可变变量
name:- 使用
String::new()创建一个空的字符串,name变量将用来存储用户的输入。
- 使用
- 读取用户输入:
io::stdin().read_line(&mut name)让程序从标准输入(控制台)读取一行数据并将其存入name变量。&mut name表示我们传递的是name的可变引用。
- 去掉换行符:
name.trim()会去掉字符串中的首尾空白字符(包括换行符),确保输出更整洁。
- 输出问候语:
- 使用
println!输出带有用户输入名字的问候语。
- 使用
编译和运行程序
在终端中,使用以下命令来编译并运行程序:
$ cargo run
当你运行程序时,它会提示你输入名字,输入后按回车,程序将显示一个包含你名字的问候语。
请输入你的名字:
Alice
你好,Alice!
更多提示信息
当你在没有输入任何名字的时候按下回车 , 响应你的会是"你好,!" , 我们班为了处理更多特定情况 , 我们可以处理用户输入时的错误,比如输入为空时给出提示:
use std::io;
fn main() {
println!("请输入你的名字:");
let mut name = String::new();
io::stdin()
.read_line(&mut name)
.expect("读取输入失败");
let name = name.trim();
// 检查用户是否输入了空白字符
if name.is_empty() {
println!("你没有输入名字!");
} else {
println!("你好,{}!", name);
}
}
在这个版本的程序中 , 如果用户没有输入名字 , 程序会显示一条警告信息 , 而不是直接出现空白的问候语录
总结
通过这个简单的命令行问候应用,你学习了 Rust 的几个基本概念:
- 如何创建变量和使用
String类型。 - 如何通过
std::io::stdin()获取用户输入。 - 如何处理错误(例如使用
expect方法)和去除多余的换行符。 - 使用
println!宏来输出到控制台。