Rust 13: 命令行参数std::env::args()和标准输入std::io::stdin()

文章目录

    • 命令行参数
      • 创建测试项目
      • 运行测试
    • 标准输入输出
      • 标准输入
      • 标准输出

命令行参数

今天来简单说一说Rust中如何获取程序的入口参数,以及如何读取标准输入的问题。

创建测试项目

cargo new hello-cli

编辑src/main.rs,其中通过静态的std::env::args()函数调用得到程序的入口参数:

fn main() {
    use std::env::Args;
    let args: Args = std::env::args();

    println!("{:?}", args);
    for arg in args {
        println!("{:?}", arg);
    }
}

运行测试

Rust 13: 命令行参数std::env::args()和标准输入std::io::stdin()_第1张图片

可以看到,通过for arg in args遍历程序入口参数,第一个参数就是程序的路径

标准输入输出

标准输入

调用std::io::stdin()得到的Stdin关联到程序的标准输入设备。

Stdinread_line()方法,一次从标准输入读取一行内容,包括换行符

Stdin中实现了Read trait中的read_to_string()方法。调用该方法会一直读到文件末尾(EOF)才结束。
要在CLI命令行输入EOFWindows系统是CTRL+Z,Linux是CTRL+D

标准输出

可通过println!宏,将格式化后的字符串输出到标准输出设备。

// 调用标准输入读取输入信息
use std::io::Read;
use std::io::Stdin;
let mut buf = String::new();
let std_in: Stdin = std::io::stdin();
while std_in.read_line(&mut buf).is_ok() {
    if "exit\r\n" == buf {
        println!("Bye bye");
        break;
    } else {
        print!("{}", buf);
        buf.clear();
    }
}

Rust 13: 命令行参数std::env::args()和标准输入std::io::stdin()_第2张图片

你可能感兴趣的:(Rust编程:从0到100,rust程序入口参数,rust命令行,std,env,args,rust,stdio,rust标准输入)