当 运行 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
好像是同一个问题。可能是一个错误。
更新:这似乎是一个货运错误。有关更多详细信息,请参阅答案 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
好像是同一个问题。可能是一个错误。