#user-input #input #stdin #terminal #gets #scanf #command-line-interface

scanrs

一个简单的 Rust 库,用于简单处理用户输入

7 个版本

0.3.0 2021 年 7 月 13 日
0.2.1 2020 年 8 月 12 日
0.2.0 2019 年 11 月 23 日
0.1.7 2019 年 11 月 23 日

#1 in #gets


被用于 ironkey

GPL-2.0-only

10KB

scanrs

一个简单的 Rust 库,用于轻松处理标准输入。

这是什么?

这个包受到了这个项目的启发,因此它只依赖于标准库,任何额外的工作都应该手动完成或挑选出来,以避免增加如此简单包的负担。

https://www.reddit.com/r/rust/comments/dy365h/only_one_wish_for_rust_2020/

scanrs 是一个小巧实用的 Rust 包,简化了用户输入的处理。

Rust 读取标准输入的方式相当“奇特”,尽管在终端应用程序中请求用户输入略显过时。

但在某些情况下或初学者练习中,请求适当的输入是必要的,遗憾的是,在 Rust 中这样做会导致程序变得非常冗长。

这个库旨在使读取标准原始类型变得更加容易,使其更快、更易于理解且更轻量级。

如何使用它?

这个包没有太多技术性,因此使用起来相当简单,只需调用所需的函数即可。

Rust 中读取用户输入的一种方式

在 Rust 中读取用户输入的一种简单方法是通过处理错误(或使用直接的 unwrap)。

let mut number = String::new();

io::stdin().read_line(&mut number).expect("IO Failure");

let number: f64 = match number.trim().parse() {
    Ok(num) => num,
    Err(_) => panic!("Not a number!"),
};

但是,当需要读取多个变量时,这会变得有点冗长,因此可以使用这个包。

use scanrs::scann;

fn main() {
    println!("Please input a number");
    let num = scann();
    println!("You entered {}", num);
}

它可以处理哪些原始类型?

当前可用函数

  • scann:从 stdin 读取数字。

  • scanvec:扫描由空白字符分隔的元素列表

  • scanln:扫描字符串

待办事项

  • 使此功能支持泛型,以便函数可以读取任何类型。
  • 为这个包添加颜色,以便发送花哨的错误。

没有运行时依赖项