我要从用户那里输入数字,然后检查数字是正数,负数还是零。执行了正数和零校验,但是在负数校验中有问题。
use std::io::Write;
fn main(){
print!("Enter Number: ");
let mut number = String::new();
std::io::stdout().flush();
std::io::stdin().read_line(&mut number);
let num: u32 = number.trim().parse().unwrap();
}
当输入为负数时,程序会陷入恐慌,无法解析负数。
答案 0 :(得分:3)
在最后一行中用u32
替换i32
时,程序将能够处理负数。
u32
表示 unsigned 整数,宽度为32位,因此parse()
在遇到负数时会感到慌张。 i32
是一个带符号整数,因此可以使用。