Skip to content

快速开始

安装

Cargo.toml 中添加依赖:

toml
[dependencies]
rsio = "0.1.0"

基本使用

读取字符串

rust
use rsio::input;

fn main() {
    println!("请输入你的名字:");
    let name = input();
    println!("你好, {}!", name);
}

input() 从标准输入读取一行,自动去除首尾空白字符后返回 String

读取数字

rust
use rsio::input_num;

fn main() {
    println!("请输入一个整数:");
    let x: i32 = input_num();

    println!("请输入一个小数:");
    let y: f64 = input_num();

    println!("两个数之和: {}", x as f64 + y);
}

input_num::<T>() 读取一行输入并解析为指定类型,支持所有实现了 FromStr trait 的类型。

一次读取多个值

rust
use rsio::input;

fn main() {
    println!("请用空格分隔输入三个数字:");
    // 先用 input() 读取整行,再自行分割解析
    let line = input();
    let nums: Vec<i32> = line
        .split_whitespace()
        .map(|s| s.parse().unwrap())
        .collect();
    println!("你输入了: {:?}", nums);
}

更多类型示例

input_num 支持任何实现了 FromStr 的类型:

rust
use rsio::input_num;

fn main() {
    let integer: i32 = input_num();    // 整数
    let float: f64 = input_num();      // 浮点数
    let unsigned: u64 = input_num();   // 无符号整数
    let boolean: bool = input_num();   // 布尔值("true"/"false")
}

错误处理

当输入无法解析时,input_num 会 panic。如果希望优雅处理错误,可以先用 input() 读取字符串,再自行处理:

rust
use rsio::input;

fn main() {
    let line = input();
    match line.parse::<i32>() {
        Ok(num) => println!("你输入的数字是: {}", num),
        Err(e) => println!("输入无效: {}", e),
    }
}