コマンドライン引数は、std::env::args().collect()で取得することができる
let argv: Vec
use std::env; fn main(){ let argv: Vec<String> = env::args().collect(); let argc = argv.len(); println!("arg={}", argc); println!("{:?}", argv); }
コマンド名とコマンドライン引数を表示する例
use std::env; fn main(){ let argv: Vec<String> = env::args().collect(); let argc = argv.len(); if argc < 3 { println!("引数を2個指定してください。"); std::process::exit(1); } println!("実行ファイル名:{}", argv[0]); println!("引数1:{}", argv[1]); println!("引数2:{}", argv[2]); }
コマンドラインからファイル名を取得してファイルを読み込んで表示する1つのツールとして使えるプログラムにする
use std::env; use std::io::BufReader; use std::io::prelude::*; use std::fs::File; fn main() -> std::io::Result<()>{ let argv: Vec<String> = env::args().collect(); let argc = argv.len(); let fname = &argv[1]; if argc < 2 { println!("引数にファイル名を指定してください。"); std::process::exit(1); } let f = File::open(fname)?; let reader = BufReader::new(f); for line in reader.lines(){ println!("{}", line?); } Ok(()) }