Rustで標準入力できる何かを作る。
コマンドラインでstopを入力するまでの文字を配列にして表示する。
参考サイト
準備
dockerのrustを使います。こんな感じで。
docker run -it --rm -e USER=$USER -v "$PWD":/usr/src/ -w /usr/src rustlang/rust:nightly bash
dockerのRust環境に入ったら、cargoでパッケージを生成。
cargo new cmd_input
実装
main.rs
use std::io::prelude::*;
use std::io;
fn read_vec() -> Vec<String> {
let mut v: Vec<String> = Vec::<String>::new();
let stdin = io::stdin();
for line in stdin.lock().lines() {
match line {
Ok(s) => {
if s.trim() == "stop" {
break;
}
v.push(s);
},
Err(_) => {
println!("Error!");
}
}
}
v
}
pub fn main() {
let v = read_vec();
println!("{:?}", v);
}
動作確認
cargo run
こんな感じで、AAA、BBB、stop って打った後、配列が表示されたらOK
AAA
BBB
stop
["AAA", "BBB"]