2016-08-25 10 views
1

標準的なライブラリでは書式設定された文字列をRustの好きな初心者のstderrに印刷しようとしていますが、便利なマクロのように見えます(print!/println!stdout)。 Cでは錆:フォーマットされた印刷を標準エラー出力にするには?

このようにそれを行う、1だけでした:

fprintf(stderr, "format_string", args ...); 

私は正常に心に入って来た次のことはしたこと

let stderr = std::io::stderr(); 
writeln!(&mut stderr, "literal"); 

stderrに文字列リテラルを印刷しました最初にformat!を実行し、writeln!error: expected a literalでコンパイルできないmutを使用します。一方、stderr.write()&[u8]を想定しているため、String::bytes().collect()を使用しても実際には動作しません。

これには適切な解決策はありますか?

答えて

3

時々、本当に簡単です解決策:writeln!()、機能をフォーマットし、あなたがが、useWrite形質を持っているだけで

use std::io::Write; writeln!(std::io::stderr(), "three plus four is {}!", 3 + 4); 

println!()として働いていました。

+0

lol! :D大丈夫、ありがとう。 /失敗します – ehoopz

関連する問題