📜  如何从标准输入中读取 rust (1)

📅  最后修改于: 2023-12-03 15:08:15.981000             🧑  作者: Mango

如何从标准输入中读取 Rust

在 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());
}

代码说明:

  1. 使用 std::io::stdin() 获取标准输入流。
  2. 使用 String::new() 新建一个字符串变量 input
  3. 使用 read_line() 方法读取输入内容,并将其存储到 input 中。
  4. 使用 trim_end() 方法去掉 input 中的末尾换行符。
  5. 打印出用户输入的内容。
读取字符

如果你需要从标准输入中读取单个字符,可以使用 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);
}

代码说明:

  1. 使用 std::io::stdin() 获取标准输入流。
  2. 使用 [0; 1] 定义一个包含一个元素的数组 input,该元素用于存储输入的字符。
  3. 使用 read_exact() 方法读取一个字节的输入内容,并将其存储到 input 中。
  4. input 中的单个字节转换为字符,并存储到 character 变量中。
  5. 打印出用户输入的字符。
读取数字

如果你需要从标准输入中读取数值,可以使用 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);
}

代码说明:

  1. 使用 std::io::stdin() 获取标准输入流。
  2. 使用 lines() 方法读取输入内容,并将其存储到 input 变量中。
  3. 使用 parse() 方法将 input 转换为 i32 类型的数值,并存储到 number 变量中。
  4. 打印出用户输入的数值。
总结

通过 Rust 标准库中的 std::io::stdin() 方法,我们可以从标准输入中读取字符串、字符以及数值。读取标准输入的过程需要注意异常情况的处理,比如在读取一个数字时用户输入了非法的字符等等。