To learn Rust, I\'m looking at things like the HackerRank 30 days challenge, Project Euler, and other programming contests. My first obstacle is to read multiple integers from a
You can use the scan-rules crate (docs), which makes this kind of scanning easy (and has features to make it powerful too).
The following example code uses scan-rules
version 0.1.3 (file can be ran directly with cargo-script).
The example program accepts two integers separated by whitespace, on the same line.
// cargo-deps: scan-rules="^0.1"
#[macro_use]
extern crate scan_rules;
fn main() {
let result = try_readln! {
(let n: u32, let m: u32) => (n, m)
};
match result {
Ok((n, m)) => println!("I read n={}, m={}", n, m),
Err(e) => println!("Failed to parse input: {}", e),
}
}
Test runs:
4 5
I read n=4, m=5
5 a
Failed to parse input: scan error: syntax error: expected integer, at offset: 2