Rust编程从入门到实战
上QQ阅读APP看书,第一时间看更新

3.3 从命令行输入

对于一个命令行程序来说,除了能够输出以外,还应该具有从外界接收输入的能力。

以上程序是一段C语言程序,它让用户输入两个数字,并输出这两个数字的和。

在Rust中,“std::io::stdin”代表了标准输入流,可以通过它获取从命令行输入的文字或其他数据。

    use std::io::stdin;
 
    fn main() {
        let mut str_buf = String::new();
        stdin().read_line(&mut str_buf).unwrap();
        println!("Your input line is \n{}", str_buf);
    }

以上程序的作用是从命令行读取一行字符串,然后把它打印出来。

    use std::io::stdin;
 
    fn main() {
        let mut str_buf = String::new();
        stdin().read_line(&mut str_buf).unwrap();
        let sp: Vec<&str> = str_buf.as_str().split(' ').collect();
        let a = sp[0].trim().parse::<i32>().unwrap();
        let b = sp[1].trim().parse::<i32>().unwrap();
        println!("{}+{}={}", a, b, a + b);
    }

在上面的程序中,将读取的一行文字按空格拆分成两部分,然后识别成数字,再将它们的和输出。这实现了开头的C语言程序实现的功能。这段程序到目前为止与许多的语法现象没有被解释,所以可以不完全理解它,但可以通过它了解相关需求的实现方式。