为初学者解决 Rust 中的 parse() 错误

Solving parse() error in Rust for beginners

这是我的代码。它需要一个数字然后恐慌。

代码:

//Convert temperatures between Fahrenheit and Celsius.
use std::io;

fn main() {

let c: bool = true;
  
    let f: bool = false;
    let mut temperatur = String::new();
    
    println!("Gib die Temperatur an:");
    
    io::stdin()
        .read_line(&mut temperatur)
        .expect("Konnte nicht gelesen werden");
    
    let temperatur_int: i32 = temperatur.parse::<i32>().unwrap();
    
    println!("{}", temperatur_int);
}

错误:

Gib die Temperatur an: 5 thread 'main' panicked at 'called Result::unwrap()on anErrvalue: ParseIntError { kind: InvalidDigit }', src/main.rs:17:57 note: run withRUST_BACKTRACE=1 environment variable to display a backtrace

Tried to parse String to Integer

您做对了,但是您忘记了从标准输入读取时您的字符串中会换行。因此,您将得到无法解析的“32\n”而不是“32”。

在解析之前trim()也是如此:

    let temperatur_int: i32 = temperatur.trim().parse::<i32>().unwrap();