How do I read multiple integers from a single line of stdin?

前端 未结 2 404
谎友^
谎友^ 2021-01-22 09:56

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

2条回答
  •  鱼传尺愫
    2021-01-22 10:20

    The best way, as far as I know, is just to split the input line and then map those to integers, like this:

    use std::io;
    
    let mut line = String::new();
    io::stdin().read_line(&mut line).expect("Failed to read line");
    
    let inputs: Vec = line.split(" ")
        .map(|x| x.parse().expect("Not an integer!"))
        .collect();
    
    // inputs is a Vec of the inputs.
    

    Be aware that this will panic! if the input is invalid; you should instead handle the result values properly if you wish to avoid this.

提交回复
热议问题