gpt4 book ai didi

rust - 从键盘获取 Y/N 响应

转载 作者:行者123 更新时间:2023-11-29 08:21:42 25 4
gpt4 key购买 nike

我想请用户用 Y 或 N 回答问题。基本上,我不知道自己在做什么,但无论如何这是我的尝试

fn ask_confirm(question: &str) -> bool {
println!("{}",question);
loop {
match std::io::stdin().read_u8().map(|x| x as char) {
Ok('y') | Ok('Y') => return true,
Ok('n') | Ok('N') => return false,
Ok(_) => println!("y/n only please."),
Err(e) => ()
}
}
}

这会导致无限循环。 Err(e) 在 Win 7 上显示为“未知错误(OS 错误 8(FormatMessageW() 返回错误 15105))”。无论如何都无法识别输入。

最佳答案

我找不到read_u8 方法。我使用了我在 this question 中回答的逻辑.与上一个问题不同,因为您知道您只需要 Y 或 N,此方法应该可以毫无顾虑地工作。但是像 \sy 这样的输入,其中 \s 是空格会导致这个方法失败。

fn ask_confirm(question: &str) -> bool {
println!("{}",question);
loop {
let mut input = [0];
let _ = std::io::stdin().read(&mut input);
match input[0] as char {
'y' | 'Y' => return true,
'n' | 'N' => return false,
_ => println!("y/n only please."),
}
}
}

关于rust - 从键盘获取 Y/N 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com