快速开始
安装
在 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),
}
}