从 Rust 中的标准输入读取原始字节

Uns*_*her 6 rust

我正在尝试从 Rust 的标准输入中读取字节。下面的代码适用于由常规字符组成的行,但对于没有关联字符的原始字节(例如0xe0),这会导致程序崩溃。该文件称,它将在换行符终止,但没有提到与非字符字节的任何问题。

编辑:我实际上错过了它确实说所有字节都必须是 UTF-8 编码的 - 我可以使用另一个函数来做到这一点吗?

    let mut input = String::new();
    io::stdin().read_line(&mut input)
        .ok()
        .expect("Couldn't read line");   
Run Code Online (Sandbox Code Playgroud)

Uns*_*her 9

事实证明,Stdin实现了Read特征,因此我能够使用bytes方法:

for i in io::stdin().bytes() {
    println!("read byte {}", i.unwrap());
}
Run Code Online (Sandbox Code Playgroud)

并且可以通过检查每个字节直到它是所需的字节来打破这个循环。