浮点型输入
因为某些原因需要获取浮点型数据的输入。
使用 trim() 去除多余的符号,例如回车号,然后使用 parse() 来做数据转换。
代码注释中的使用 unwrap() 方法也可以直接得到想要的内容,但是前提是输入的数值要是浮点型,否则会报错,所以后面使用了一个会自动抛出错误,使程序不崩溃的方法。
use std::io::stdin; fn main() { let mut input = String::new(); stdin().read_line(&mut input) .ok() .expect("Failed to read line"); // let f1: f32 = input.trim().parse().unwrap(); // let f2 = input.trim().parse::<f64>().unwrap(); let f: f32 = match input.trim().parse() { Ok(f) => f, Err(_) => { println!("请输入\"float\"类型的内容,请勿输入无关符号!"); return; } }; //println!("f1: {f1}\nf2: {f2}"); println!("f: {f}"); }
整数的输入
整数的处理和浮点型的处理一致。
声明变量的时候修改一下转换的变量即可。
use std::io::stdin; fn main() { let mut input = String::new(); stdin().read_line(&mut input) .ok() .expect("Failed to read line"); let i: i32 = match input.trim().parse() { Ok(num) => num, Err(_) => { println!("请输入整数,请勿输入无关符号!"); return; } }; println!("i: {i}"); }