Syl*_*act 48 terminal rust output
如何使用 Rust 将彩色文本输出到终端?我尝试使用在python 答案中找到的特殊转义字符,但它们只是按字面打印。这是我的代码:
fn main() {
println!("\033[93mError\033[0m");
}
Run Code Online (Sandbox Code Playgroud)
Syl*_*act 75
您可以使用colored板条箱来执行此操作。这是一个简单的例子。具有多种颜色和格式:
use colored::Colorize;
fn main() {
println!(
"{}, {}, {}, {}, {}, {}, and some normal text.",
"Bold".bold(),
"Red".red(),
"Yellow".yellow(),
"Green Strikethrough".green().strikethrough(),
"Blue Underline".blue().underline(),
"Purple Italics".purple().italic()
);
}
Run Code Online (Sandbox Code Playgroud)
颜色输出示例:
每个格式函数(red()、italics()等)都可以单独使用,也可以与其他函数结合使用。但如果您将颜色相互组合使用,则仅显示最后设置的颜色。
Cha*_*man 58
Rust 没有八进制转义序列。您必须使用十六进制:
println!("\x1b[93mError\x1b[0m");
Run Code Online (Sandbox Code Playgroud)
另请参阅https://github.com/rust-lang/rust/issues/30491。
发生的情况以及编译器没有抱怨的原因是,这\0 是Rust 中的有效转义序列 - 并表示 NULL 字符(ASCII 代码 0)。只是 Rust 与 C(和 Python)不同,不允许您在此之后指定八进制数。因此它认为 是33要打印的普通字符。