Skip to content

API 指南

函数概览

函数签名说明
inputfn input() -> String从标准输入读取一行并返回
input_numfn input_num<F: FromStr>() -> F从标准输入读取一行并解析为指定类型

input()

从标准输入读取一行字符串,去除首尾空白后返回。

签名

rust
pub fn input() -> String

行为

  1. stdin 读取直到遇到换行符
  2. 去除首尾空白字符(空格、换行等)
  3. 返回处理后的 String

Panics

当标准输入读取失败时 panic。


input_num()

从标准输入读取一行,尝试解析为指定的目标类型。

签名

rust
pub fn input_num<F: FromStr>() -> F

泛型约束

F 必须实现 FromStr trait。Rust 标准库中实现了 FromStr 的常见类型包括:

  • 整数:i8, i16, i32, i64, i128, isize
  • 无符号整数:u8, u16, u32, u64, u128, usize
  • 浮点数:f32, f64
  • 布尔:bool
  • 其他:char, String, IpAddr, SocketAddr

行为

  1. 内部调用 input() 获取字符串
  2. 对字符串调用 parse::<F>() 进行解析
  3. 解析成功则返回,失败则 panic

Panics

  • 标准输入读取失败时 panic
  • 输入字符串无法解析为目标类型时 panic

注意事项

  1. 标准输入依赖:两个函数都从 io::stdin() 读取,因此无法在常规的 #[test] 中直接测试输入逻辑。
  2. 阻塞行为:函数会阻塞当前线程直到读取到换行符(或 EOF)。
  3. 空白处理input() 会 trim 首尾空白,input_num() 基于 input() 因此同样会 trim,这意味着带空白的数字(如 " 42 ")可以正常解析。