我在STDIN上写了一个数字串(例如4 10 30 232312),我想读取它并将其转换为整数数组(或向量),但我找不到正确的方法.到目前为止,我已经:

use std::io;

fn main() {
    let mut reader = io::stdin();
    let numbers = reader.read_line().unwrap();
}

推荐答案

rust 1.5.x、 一个有效的解决方案是:

fn main() {
    let mut numbers = String::new();

    io::stdin()
        .read_line(&mut numbers)
        .ok()
        .expect("read error");

    let numbers: Vec<i32> = numbers
        .split_whitespace()
        .map(|s| s.parse().expect("parse error"))
        .collect();

    for num in numbers {
        println!("{}", num);
    }
}

Rust相关问答推荐

if let声明中临时对象的生存期

是否可以为`T:Copy`执行`T. clone`的测试

为什么我的梅森素数代码的指数越大,速度就越快?

通过使用光标拖动角来绕其中心旋转矩形

MPSC频道在接收器处阻塞

你是如何在铁 rust 一侧的金牛座获得应用程序版本的?

使用Box优化可选的已知长度数组的内存分配

为什么我们需要std::thread::scope,如果我们可以使用thread.join()在函数的生命周期内删除引用?

程序在频道RX上挂起

为什么BufReader实际上没有缓冲短寻道?

为什么 `Deref` 没有在 `Cell` 上实现?

在 Rust 中,为什么 10 个字符的字符串的 size_of_val() 返回 24 个字节?

Rust LinkedList 中的borrow 判断器错误的原因是什么?

go 重并堆积MPSC通道消息

如何将这些测试放在一个单独的文件中?

如何在 nom 中构建负前瞻解析器?

将文件的第一行分别读取到文件的其余部分的最有效方法是什么?

在 Rust 中退出进程

如何制作具有关联类型的特征的类型擦除版本?

如果返回类型是通用的,我可以返回 &str 输入的一部分吗?