要阅读Stdin
中的一行,我可以
let mut stdin = std::io::stdin();
let mut input = String::new();
stdin.read_line(&mut input).unwrap();
要从Stdin
中读取最大长度,我可以做
const MAX_LENGTH: u64 = 256;
let mut stdin = std::io::stdin();
let mut input = String::new();
stdin.take(MAX_LENGTH).read(&mut input).unwrap();
我想要的是以上两个要求的结合。从stdin读取一行,如果输入长于MAX_LENGTH
,则其余部分将被丢弃。
答案 0 :(得分:2)
read_line
不是std::io::Read
的成员,而是std::io::BufRead
的成员,尽管stdin
确实实现了后者,但返回stdin.take()
(类型为{ {1}})。
但是您可以使用std::io::Take<_>
轻松地将任何Read
转换为BufRead
:
std::io::BufReader