当 运行 with `cargo 运行` 和 Rust 1.9 nightly 时,从标准输入读取没有数据

Reading from stdin reads no data when run with `cargo run` and Rust 1.9 nightly

更新:这似乎是一个货运错误。有关更多详细信息,请参阅答案 link。

为了使用包,我从 Rust 1.6 升级到 1.9。但是,终端在从标准输入读取时不再等待输入。这个问题似乎只出现在 cargo run (cargo 0.10.0-nightly (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 中应该如何处理标准输入?

这个错误刚刚提交:https://github.com/rust-lang/cargo/issues/2530

好像是同一个问题。可能是一个错误。