rust - 如何从单行标准输入中读取多个整数?

标签 rust

为了学习 Rust,我正在关注 HackerRank 30 天挑战、Project Euler 和其他编程竞赛。我的第一个障碍是从单行标准输入中读取多个整数。

在 C++ 中我可以方便地说:

cin >> n >> m;

我如何在 Rust 中以惯用的方式做到这一点?

最佳答案

据我所知,最好的方法就是拆分输入行,然后将它们映射到整数,如下所示:

use std::io;

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

let inputs: Vec<u32> = line.split(" ")
    .map(|x| x.parse().expect("Not an integer!"))
    .collect();

// inputs is a Vec<u32> of the inputs.

请注意,如果输入无效,这将崩溃!;你应该改为 handle the result values properly如果你想避免这种情况。

关于rust - 如何从单行标准输入中读取多个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39439582/

相关文章:

rust - 根据目标平台生成Rust可执行文件或库

rust - 在 Rust 中,Box :ed struct compared to a plain struct? 的放置顺序是否存在差异

rust - 文件结构不被视为实现读取?

multithreading - 然后在线程中执行的传入函数的生命周期

generics - Rust 类型级乘法

import - 如何从同级模块导入?

random - 我可以有效地从 HashSet 中随机抽样吗?

types - 将大于 i32 的数字存储到变量中时,为什么不会出现文字超出范围错误?

rust - 将 HashMap 编码为 bson 时 InvalidMapKeyType

pointers - Rust:修改过程中的字符串