📅  最后修改于: 2023-12-03 15:08:15.981000             🧑  作者: Mango
在 Rust 中,标准输入可以通过标准库中的 std::io::stdin()
方法来获取。从标准输入中读取的内容可以存储在字符串、字符、数字等类型的变量中。
使用 Rust 标准库中的 std::io::stdin()
方法获取标准输入流,并使用 std::io::BufRead::read_line()
方法读取输入内容。下面是一个示例代码:
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut input = String::new();
println!("请输入一段文本:");
stdin.lock().read_line(&mut input).unwrap();
println!("您输入的是:{}", input.trim_end());
}
代码说明:
std::io::stdin()
获取标准输入流。String::new()
新建一个字符串变量 input
。read_line()
方法读取输入内容,并将其存储到 input
中。trim_end()
方法去掉 input
中的末尾换行符。如果你需要从标准输入中读取单个字符,可以使用 std::io::stdin()
方法获取标准输入流,并使用 std::io::Read::read()
方法读取输入内容。下面是一个示例代码:
use std::io::{self, Read};
fn main() {
let stdin = io::stdin();
let mut input = [0; 1];
println!("请输入一个字符:");
stdin.lock().read_exact(&mut input).unwrap();
let character = input[0] as char;
println!("您输入的是:{}", character);
}
代码说明:
std::io::stdin()
获取标准输入流。[0; 1]
定义一个包含一个元素的数组 input
,该元素用于存储输入的字符。read_exact()
方法读取一个字节的输入内容,并将其存储到 input
中。input
中的单个字节转换为字符,并存储到 character
变量中。如果你需要从标准输入中读取数值,可以使用 Rust 标准库中的 std::io::stdin()
方法获取标准输入流,并使用 std::io::Read::read_line()
方法读取输入内容。接着,使用标准库中的 std::str::FromStr
trait 中的 parse()
方法将字符串转换成数值类型。下面是一个示例代码:
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
println!("请输入一个整数:");
let input = stdin.lock().lines().next().unwrap().unwrap();
let number: i32 = input.parse().unwrap();
println!("您输入的是:{}", number);
}
代码说明:
std::io::stdin()
获取标准输入流。lines()
方法读取输入内容,并将其存储到 input
变量中。parse()
方法将 input
转换为 i32 类型的数值,并存储到 number
变量中。通过 Rust 标准库中的 std::io::stdin()
方法,我们可以从标准输入中读取字符串、字符以及数值。读取标准输入的过程需要注意异常情况的处理,比如在读取一个数字时用户输入了非法的字符等等。