我正在尝试从 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)
事实证明,Stdin实现了Read特征,因此我能够使用bytes方法:
for i in io::stdin().bytes() {
println!("read byte {}", i.unwrap());
}
Run Code Online (Sandbox Code Playgroud)
并且可以通过检查每个字节直到它是所需的字节来打破这个循环。
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |