Rust:如何将格式化打印输出到 stderr?
Rust: how to make a formatted print to stderr?
我正在尝试在 Rust 中将格式化字符串打印到 stderr
(这里是好奇的新手!),但它看起来像是一个简单方便的宏(例如 print!/println!
for stdout
) 标准库中没有提供。
在 C 中,可以这样做:
fprintf(stderr, "format_string", args ...);
我已经使用
成功地将字符串 文字 打印到 stderr
let stderr = std::io::stderr();
writeln!(&mut stderr, "literal");
接下来想到的是先做一个format!
,然后用writeln!
,用error: expected a literal
编译失败的mut。另一方面,stderr.write()
需要 &[u8]
,所以使用 String::bytes().collect()
也不起作用。
正确的解决方法是什么?
参见answer of the linked duplicate。从 Rust 1.19 开始,您可以使用 eprintln!
宏。
我正在尝试在 Rust 中将格式化字符串打印到 stderr
(这里是好奇的新手!),但它看起来像是一个简单方便的宏(例如 print!/println!
for stdout
) 标准库中没有提供。
在 C 中,可以这样做:
fprintf(stderr, "format_string", args ...);
我已经使用
成功地将字符串 文字 打印到stderr
let stderr = std::io::stderr();
writeln!(&mut stderr, "literal");
接下来想到的是先做一个format!
,然后用writeln!
,用error: expected a literal
编译失败的mut。另一方面,stderr.write()
需要 &[u8]
,所以使用 String::bytes().collect()
也不起作用。
正确的解决方法是什么?
参见answer of the linked duplicate。从 Rust 1.19 开始,您可以使用 eprintln!
宏。