如何读取矢量?我需要对许多值进行求和,但我不知道有多少个值

问题描述 投票:0回答:1
use std::io::{stdin, Read};

fn main(){
   let mut nums= Vec::new();
   stdin().read(&mut nums[..]).expect(" ");
   println!("{:?}", nums)
}

并且 o 需要在输入 1 23 123 时,编译器输出 [1, 23, 123]

我尝试确定矢量的大小:

use std::io::{stdin, Read};

fn main(){
let mut nums = vec![0; 10]
stdin().read(&mut nums[..]).expect(" ");
   println!("{:?}", nums)
} 

limits the size of my vector and outputs some nonsense

rust rust-cargo cargo
1个回答
0
投票
use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");

    let nums: Vec<i32> = input
        .split_whitespace()
        .map(|num| num.parse().expect("Not an integer"))
        .collect();

    println!("{:?}", nums);
}

此代码将从标准输入中读取一行,将其拆分为以空格分隔的部分,尝试将每个部分解析为 i32,并将结果收集到向量中。如果输入 1 23 123,它将正确输出 [1, 23, 123]。

© www.soinside.com 2019 - 2024. All rights reserved.