更新:これは貨物バグのようです。詳細については、アンサーのリンクを参照してください。`cargo run`とRust 1.9 nightlyで実行すると、stdinからの読み込みでデータが読み込まれない
パッケージを使用するために1.6から1.9にアップグレードしました。しかし、端末は標準入力からの読み込みを待つことがなくなりました。この問題は、cargo run
(貨物0.10.0-夜間(25e1301 2016-03-25))のみであるようです。バイナリファイルを直接実行するとすべて正常に動作します。
私はdocumentation for Stdin
に与えられた1とほぼ同じ例を使用しています:cargo run
プリント0 bytes read
でこの例を実行する
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),
}
。
私のコンピュータには1.6と1.9の両方のコンパイラがあり、コードは1.6でうまく動作します。私はWindowsとLinuxの両方で1.9を使って同じ結果を試してみました。
なぜこのようなことが起きていますか?そして、Rust 1.9で標準をどのように扱うべきですか?
一週間前から夜間に再現することはできません。確認するために更新してください... –
夜間には、 'rustc'や' rustc -O'を使って夜間に再現することはできません。 –
@ChrisMorgan 'carc run 'を使うときはうまくいきますが、' rustc'を使うとうまくいきます。 – Liam