2016-03-29 29 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

回答