-
Notifications
You must be signed in to change notification settings - Fork 0
Rust:read
halmk edited this page Dec 24, 2019
·
5 revisions
read関数は標準入力から空白をスキップしてトークンを受け取り、T型に変換して返します。
- read関数
use std::io::*;
use std::str::FromStr;
fn read<T: FromStr>() -> T {
let stdin = stdin();
let stdin = stdin.lock();
let token: String = stdin
.bytes()
.map(|c| c.expect("failed to read char") as char)
.skip_while(|c| c.is_whitespace())
.take_while(|c| !c.is_whitespace())
.collect();
token.parse().ok().expect("failed to parse token")
}- 2次元配列の入力 (number)
fn main() {
let n:u32 = read();
let m:u32 = read();
let x:Vec<Vec<i32>> = (0..n).map(|_| (0..m).map(|_| read()).collect()).collect();
}- 2次元配列の入力 (string)
fn main() {
let n:usize = read();
let m:usize = read();
let c:Vec<Vec<char>> = (0..n).map(|_| read::<String>().chars().collect()).collect();
}- 複数の型を持つベクター型の入力
let n:usize = read();
let mut v:Vec<(String, u32, u32)> = (0..n).map(|i| (read(), read(), i as u32)).collect();