W How to read user input in Rust? można zobaczyć, w jaki sposób iteracyjne nad wszystkie linie:
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
for line in stdin.lock().lines() {
println!("{}", line.unwrap());
}
}
Można również ręcznie iteracyjne bez pętli for:
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();
}
Nie można uzyskać jedną wykładziny rób co chcesz. Ale dodaje pobiera jeden wiersz (i jest dokładnie taka sama odpowiedź jak w 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();
}
Można również użyć text_io
paka dla bardzo prostego wejścia:
#[macro_use] extern crate text_io;
fn main() {
// reads until a \n is encountered
let line: String = read!("{}\n");
}
Co z [Stdin :: read_line] (http://doc.rust-lang.org/nightly/std/io/struct.Stdin.html#method.read_line)? – Gerstmann
@Gerstmann: ta funkcja jest raczej dziwna w mojej opinii. –