<分区>
在 Rust 中将字符串类型值解析为浮点类型值时,一切正常"let pi: f64 = 3.14".parse().unwrap();
.
但是,当解析来自标准输入的 String 类型值时,即使它是完全相同的值,程序也会 panic 并抛出:
thread 'main' panicked at 'called
Result::unwrap()
on anErr
value: ParseFloatError { kind: Invalid }', src/libcore/result.rs:999:5 note: run withRUST_BACKTRACE=1
environment variable to display a backtrace.
我检查了值的类型,它是一个字符串,所以我不明白错误是关于什么的,而且我一直没能找到任何与标准输入相关的内容(标准输入)和这个问题。还有其他人遇到过这个吗?有什么好的方法可以防止 panic 吗?
这里是一些重现问题的代码:
use std::io::{stdin,stdout,Write};
fn main() {
let mut s = String::new();
println!("Give a number ");
stdin().read_line(&mut s)
.expect("Did not enter a correct string");
let user_input: f64 = s.parse().unwrap();
println!("{:?}", user_input)
}
提前致谢!