为什么我的stdin用户输入没有正确匹配?

为什么我的stdin用户输入没有正确匹配?

我正在尝试获取系统输入并检查用户是否输入了是或否。我的字符串转换是错误还是什么?if块不执行。

use std::io;fn main() {
    let mut correct_name = String::new();
    io::stdin().read_line(&mut correct_name).expect("Failed to read line");
    if correct_name == "y" {
        println!("matched y!");
        // Do something
    } else if correct_name == "n" {
        println!("matched n!");
        // Do something else
    }}


料青山看我应如是
浏览 518回答 3
3回答

白猪掌柜的

read_line包括返回字符串中的终止换行符。添加.trim_right_matches("\r\n")到您的定义中correct_name以删除终止换行符。

眼眸繁星

您可以使用提供函数的chomp-nlcrate,该chomp函数返回不带换行符的字符串切片。如果您喜欢这样做,也有一个特点ChompInPlace。免责声明:我是这个图书馆的作者。
打开App,查看更多内容
随时随地看视频慕课网APP