在 Rust 中,从 stdin
读取一行通常会使用 std::io
模块中的 stdin
函数以及 BufRead
trait 中的 lines
方法。以下是一个简单的例子,展示了如何使用 Rust 从标准输入读取一行(字符串):
rustuse std::io::{self, BufRead}; fn main() { // 创建一个 stdin 的句柄 let stdin = io::stdin(); // 从 stdin 读取一行 let mut line = String::new(); println!("请输入一行内容:"); match stdin.lock().read_line(&mut line) { Ok(_) => { // 如果成功,去除字符串末尾的换行符 let line = line.trim_end(); println!("你输入的行是:{}", line); }, Err(error) => { // 如果出现错误,打印错误信息 println!("错误读取行: {}", error); } } }
在这个例子中,我们首先导入了 std::io
模块的相关内容。然后在 main
函数中,我们获取 stdin
的句柄,接着创建一个新的空的 String
对象来存放将要读取的一行。我们使用 read_line
方法来读取用户输入的一行并将其存入这个 String
对象。read_line
方法返回一个 Result
类型,这有助于我们处理可能发生的任何错误。如果 read_line
成功,它会返回 Ok
,包含读取的字节数;如果失败,它会返回一个 Err
,包含错误信息。在这个例子中,我们通过模式匹配处理 Result
,如果成功就打印输入的行,如果发生错误则打印错误信息。
请注意,read_line
方法会在行末保留换行符,所以我们使用了 trim_end
方法来去除字符串末尾的空白字符,包括换行符。这样我们就能得到一个干净的行字符串。
2024年6月29日 12:07 回复