[Rust 基础课程]猜数字游戏-获取用户输入并打印

创建项目

按照之前的章节讲的创建一个 Cargo 项目的方法,自己创建一个名为 guessing_game 的 cargo 项目并执行,确保能成功打印出 Hello World。

编写代码

使用 RustRover 打开项目,打开 src/main.rs 文件,我们将在这个文件中编写我们的代码。

将以下内容敲入 main.rs 文件中(对照着敲一遍,不要复制粘贴,熟悉敲代码的感觉):

rust 复制代码
use std::io;

fn main() {
    println!("Guess the number!");

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin()
        .read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
}

use std::io;这行代码导入标准库中的 io 模块,用于处理输入/输出操作。

fn main() { 这行代码定义了主函数,它是 Rust 程序的入口点。

println!("Guess the number!"); 这行代码打印字符串到控制台,提示用户猜数字。

println!("Please input your guess."); 这行代码再次打印字符串,提示用户输入猜测。

letmut guess = String::new(); 声明一个可变(mut)变量guess,并初始化为一个空的String类型实例。String是 Rust 中可增长的、UTF-8 编码的字符串类型。

io::stdin() 这行代码调用 io模块的stdin()函数,返回一个Stdin类型实例,代表标准输入(通常是键盘)。

.read_line(&mut guess) 这行代码调用Stdin实例的read_line()方法。它读取用户输入的一行文本,并将其追加到guess变量中。&mut guess表示将guess的可变引用传递给read_line,这样read_line就可以修改guess的内容。

.expect("Failed to read line");这行代码是处理异常, read_line方法返回一个Result类型。expect()方法用于处理这个Result。 如果ResultOk(表示成功),expect()会解包并返回内部的值。 如果ResultErr(表示失败),expect()会使程序崩溃,并打印括号中的错误消息。 在这里,如果读取输入失败,程序就会带着"Failed to read line"消息终止。

println!("You guessed: {}", guess); 这行代码是将用户输入的猜测数字打印出来,{}是占位符,会被guess变量的值替换。 println!是一个宏,用于格式化输出。

运行

之前讲过,使用如下命令运行项目:

shell 复制代码
cargo run

当打印出"Please input your guess." 时,你输入一个数字,然后,就会打印出你输入的数字是什么。

相关推荐
doiito11 小时前
【AI 应用】从“外国人味”到地道中文:kokoroi-rs v0.1.2 架构升级深度解析
ai·rust·系统设计
Zwarwolf16 小时前
Rust零散知识点项目汇总
开发语言·rust
X档案库18 小时前
【开源】我做了一套可以 AI 托管的 Markdown 博客与知识库
rust·博客·markdown·marksharex
程序员爱钓鱼1 天前
Rust Vec 动态数组详解:创建、增删、遍历与排序
前端·后端·rust
_abab1 天前
Rust重塑系统编程:从Linux内核到AI推理引擎的2026全景解析
linux·人工智能·rust
doiito1 天前
【Agent Harness】Gliding Horse 高级认知优化:让 Agent 的“大脑”和“免疫系统”真正协同
ai·rust·架构设计·系统设计·ai agent
longxiangam2 天前
第 4 篇:Embassy 异步运行时与事件驱动架构
单片机·嵌入式硬件·rust
程序员爱钓鱼2 天前
Rust String 与 &str 详解:字符串所有权、借用与转换
前端·后端·rust
段一凡-华北理工大学2 天前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
大卫小东(Sheldon)3 天前
小鹤音形词典:一个用 Rust 写的离线编码查询桌面工具
ai·rust