Trong How to read user input in Rust?, bạn có thể xem làm thế nào để lặp qua tất cả các dòng:
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
for line in stdin.lock().lines() {
println!("{}", line.unwrap());
}
}
Bạn cũng có thể tự lặp mà không có một cho vòng lặp:
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut iterator = stdin.lock().lines();
let line1 = iterator.next().unwrap().unwrap();
let line2 = iterator.next().unwrap().unwrap();
}
Bạn không thể có được một lớp lót để làm những gì bạn muốn. Nhưng sau nhận được một dòng duy nhất (và chính là câu trả lời tương tự như trong How do I read a single String from standard input?):
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let line1 = stdin.lock().lines().next().unwrap().unwrap();
}
Bạn cũng có thể sử dụng text_io
thùng cho đầu vào siêu đơn giản:
#[macro_use] extern crate text_io;
fn main() {
// reads until a \n is encountered
let line: String = read!("{}\n");
}
Nguồn
2015-05-12 09:15:25
Còn về [Stdin :: read_line] (http://doc.rust-lang.org/nightly/std/io/struct.Stdin.html#method.read_line)? – Gerstmann
@Gerstmann: chức năng đó khá kỳ lạ khi sử dụng theo ý kiến của tôi. –