目录
什么是 Rust 输出到命令行
Rust 输出到命令行是指使用 Rust 程序将文本或数据写入标准输出(stdout)或标准错误(stderr),通常通过终端显示。它是与用户交互或调试程序的基本方式。
为什么要输出到命令行
- 用户交互:向用户显示结果或提示。
- 调试:快速查看变量值或程序状态。
- 日志记录:输出运行信息。
- 简单性:命令行输出无需 GUI,支持脚本化。
Rust 输出方法
Rust 提供了多种宏和函数用于命令行输出,主要在标准库 std::io
和宏系统中:
print!
和println!
:标准输出,println!
自动换行。eprint!
和eprintln!
:标准错误输出。write!
和writeln!
:写入指定流(如文件或 stdout)。
格式化输出
- 占位符:
{}
用于插入值。 - 命名参数:
{name}
指定变量。 - 格式修饰符:
{:?}
:调试输出(需实现Debug
)。{:.2}
:保留两位小数。{:#x}
:十六进制带前缀。
代码示例
基本输出
fn main() {
print!("Hello, ");
println!("Rust!"); // 换行
eprintln!("This is an error message");
}
运行结果:
Hello, Rust!
This is an error message (显示在 stderr)
格式化输出
fn main() {
let name = "Alice";
let age = 30;
println!("Name: {}, Age: {}", name, age);
println!("Name: {n}, Age: {a}", n = name, a = age);
println!("Hex: {:#x}, Debug: {:?}", 255, [1, 2, 3]);
}
运行结果:
Name: Alice, Age: 30
Name: Alice, Age: 30
Hex: 0xff, Debug: [1, 2, 3]
使用 std::io
use std::io::{self, Write};
fn main() -> io::Result<()> {
let mut stdout = io::stdout();
write!(stdout, "No newline here")?;
writeln!(stdout, "\nWith newline")?;
Ok(())
}
运行结果:
No newline here
With newline
高级用法
- 颜色输出(需依赖
colored
库):
[dependencies]
colored = "2.0"
use colored::Colorize;
fn main() {
println!("{}", "Error!".red());
println!("{}", "Success!".green());
}
运行结果(带颜色):
Error! (红色)
Success! (绿色)
- 缓冲控制:
use std::io::{self, Write};
fn main() -> io::Result<()> {
let mut stdout = io::stdout();
write!(stdout, "Immediate output")?;
stdout.flush()?; // 立即刷新缓冲区
Ok(())
}
参考资料与出站链接
- 官方文档:
- 学习资源:
- 工具与社区:
发表回复