2015-06-26 4 views

Antwort

6

einen Aufruf an stdout().flush() Fügen Sie den Puffer zur Ausgabe zu erzwingen, bevor read_line aufgerufen:

fn main() { 
    print!("Input string: "); 
    std::io::stdout().flush(); 
    let mut string: String = String::new(); 
    std::io::stdin().read_line(&mut string); 
} 
0

Die akzeptierte Antwort ist richtig: Sie müssen stdout().flush() vor read_line nennen. Der Code wird jedoch nicht auf Rust 1.6.0 kompiliert. Die folgenden Änderungen werden es kompilieren. Sie zeigen auch, wie die resultierende Zeichenfolge verwendet wird:

use std::io::prelude::*; 
use std::io; 

fn main() { 
    print!("Input string: "); 
    io::stdout().flush().ok().expect("Could not flush stdout"); 
    let mut string: String = String::new(); 
    let _ = std::io::stdin().read_line(&mut string); 
    println!("{}", string.trim()); 
} 
Verwandte Themen