目录

  1. 什么是 Rust 输出到命令行
  2. 为什么要输出到命令行
  3. Rust 输出方法
  4. 格式化输出
  5. 代码示例
  6. 高级用法
  7. 参考资料与出站链接

什么是 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(())
  }

参考资料与出站链接

  1. 官方文档
  1. 学习资源
  1. 工具与社区