我很惊讶我似乎无法浏览rust的文档以找到描述io的任何案例,有人可以向我解释如何使用基本的io来获取用户输入说,整数?也许在哪里可以找到那些被诅咒的文件中的io细节?感谢
答案 0 :(得分:8)
回答有关int
的问题。 (所有这些类型的注释都是可选的,并且我已经将每个步骤分开了。)
use std::io;
fn main() {
let mut stdin = io::stdin();
let err_line: io::IoResult<String> = stdin.read_line();
let line: String = err_line.unwrap();
let line_no_extra_whitespace: &str = line.as_slice().trim();
let possible_number: Option<int> = from_str(line_no_extra_whitespace);
match possible_number {
Some(n) => println!("double your number is {}", 2 * n),
None => println!("please type an integer")
}
}
文档(注意。文档中的几乎所有类型都是可点击的,带您进入一个页面,其中包含更多描述/列出您可以使用它们执行的操作):
stdin
.read_line
IoResult
(请注意,这只是重命名类型,即实际上是Result
。)String
.unwrap
from_str
(以及它所包含的FromStr
特征。).as_slice
(您可以在实施者列表中看到String
。).trim
Option
(None
和Some
是Option
)println!
另请注意,可以通过页面顶部的搜索框搜索文档,例如: searching for "stdin"。 (您可以按任何页面上的“跳转到搜索框,准备输入”。)
您可能还对this answer感兴趣的是有关堆分配String
和字符串切片&str
之间的区别。
其他人指出了cheatsheet,文档std
的入口点以及特定于IO的std::io
。还有其他地方提供了很好的信息,例如std::result
文本,用于处理IO操作的返回值(请记住IoResult
是Result
,因此支持所有这些操作)和irc.mozilla.org(web client)上的#rust IRC频道通常有多个人愿意提供帮助。
答案 1 :(得分:2)
来自http://doc.rust-lang.org/std/index.html:
常见的I / O类型,包括文件,TCP,UPD,管道,Unix域 套接字,定时器和进程生成在io模块中定义。
并从该文档链接:http://doc.rust-lang.org/std/io/
读:
use std::io;
for line in io::stdin().lines() {
print!("{}", line.unwrap());
}