如何使用用户输入退出 Rust 中的循环?[复制]

how can i exit a loop in rust using a user input? [duplicate]

提问人:alvinn011 提问时间:8/11/2023 更新时间:8/11/2023 访问量:53

问:

我试图创建一个计算器,如果用户写到他不想做另一个操作,它就会破坏它永远不会。

fn main {
    loop {
// calculator code
println!("result: {}", result);
        println!("do you want to do another operation(y/n)? ");
        let mut answer = String::new();
        io::stdin().read_line(&mut answer).expect("failed to read line");
        if answer == "n"{
            println!("ok, goodbye!");
            break;
        } 
    }
}

这是我的第一个 Rust 项目,所以我尝试得很少

字符串 循环 if-statement rust io

评论


答:

2赞 prog-fh 8/11/2023 #1

该函数读取直到找到,但此分隔符包含在更新的字符串中。read_line()\n

至少,你必须这样分析答案:

if answer == "n\n" {

请参阅此文档(参考此文档)。

此函数将从基础流中读取字节,直到找到换行符分隔符(0xA字节)或 EOF。找到分隔符(如果找到)之前的所有字节(如果找到)都将附加到 buf。

或者,您可以依赖 .trim() 函数。 它返回一个字符串切片(原始字符串的部分视图),忽略前导和尾随空格。

if answer.trim() == "n" {