2016-03-29 65 views
2

更新:這似乎是一個貨物的bug。請參閱答案鏈接瞭解更多詳情。從stdin讀取數據時讀取「貨物運行」和鏽1.9晚上沒有數據

我從Rust 1.6升級到1.9以便使用包裝。但是,從標準輸入讀取時,終端不再等待輸入。這個問題似乎只與cargo run(貨物0.10.0-每晚(25e1301 2016-03-25));當我直接運行二進制文件時,一切正常。

我使用幾乎同樣的例子在documentation for Stdin給出的:

use std::io; 

let mut input = String::new(); 
match io::stdin().read_line(&mut input) { 
    Ok(n) => { 
     println!("{} bytes read", n); 
     println!("{}", input); 
    } 
    Err(error) => println!("error: {}", error), 
} 

運行與cargo run打印0 bytes read這個例子。

我在我的電腦上安裝了1.6和1.9編譯器,代碼與1.6一起工作就好了。我嘗試在Windows和Linux上使用1.9,結果相同。

爲什麼會發生這種情況,應該如何在Rust 1.9中處理stdin?

+0

無法在一個星期前的晚上再現,更新以確認... –

+0

仍然無法用最新的夜晚,使用'rustc'或'rustc -O'重現。 –

+0

@ChrisMorgan好吧,當我使用'rustc'時,它工作正常,但當我使用'貨物運行'時沒有問題。 – Liam

回答