跳到主要内容
版本:Next

print / println

std::printstd::println 是 C++23 引入的格式化输出函数,将 std::format 的格式化能力直接绑定到标准输出。它比 std::cout 更简洁,比 printf 类型安全。

头文件与基本特征

#include <print>
特征说明
格式化std::format 语法
线程安全对同一流的输出不交错
换行println 自动追加 \n
与 cout 混用需注意流同步

基本用法

#include <print>

int main() {
std::println("Hello, {}!", "world"); // Hello, world!
std::println("{} + {} = {}", 1, 2, 3); // 1 + 2 = 3

// 格式说明符
std::println("pi ≈ {:.3f}", 3.14159); // pi ≈ 3.142
std::println("hex: {:#x}", 255); // hex: 0xff

return 0;
}

对比旧方式

// C 风格:不安全
printf("value = %d\n", 42);

// C++11 风格:冗长
std::cout << std::format("value = {}\n", 42);

// C++23:简洁安全
std::println("value = {}", 42);

常用接口

函数作用
print(fmt, args...)格式化输出(不加换行)
println(fmt, args...)格式化输出 + 换行
println()输出空行
print(stream, fmt, args...)输出到指定流(如文件)

使用注意

  1. print / println 对同一流的每次调用是原子的(不交错),适合多线程日志。
  2. cout 混用时,要确保同步设置正确。
  3. 编译器支持:GCC 14+ / Clang 17+ / MSVC 17.x+。

小结

std::print / std::println 让 C++ 的输出终于赶上了 Python 和 Rust 的体验。新项目里可以逐步用它们替代 cout <<printf