0%

Rust 012 EOF input

Rust EOF 輸入

如果你的輸入是要EOF的也就是用ctrl+Z結束輸入的話,我們可以使用rust的stdin來判斷它是不是0,那我們在這使用Option來回傳使否成功,如果輸入有值得話Some就會回傳輸入的值否則就是空的,那麼上面的while迴圈就會結束。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fn main() {
let mut vec1 = Vec::new();

println!("Input");
while let Some(input) = single_input() {
vec1.push(input);
}
}

fn single_input() -> Option<i32> {
let mut s = String::new();
let input = std::io::stdin().read_line(&mut s).expect("err read");
if input == 0 {
return None;
} else {
return Some(s.trim().parse::<i32>().unwrap());
}
}