在C++23标准中,输出方式迎来了明显简化,新增的std::print与std::println让开发者不必再依赖复杂的流操作或旧的printf函数,就能完成格式化打印。下面先看一个基础示例。

什么是C++23的print
C++23在头文件<print>中提供了std::print和std::println。它们使用类似Python的格式化语法,把文本与变量写在一个字符串里,由库自动替换。
- std::print:原样打印,不自动换行
- std::println:打印后自动追加换行符
基本用法示例
下面代码展示如何用print输出变量,无需再用<iostream>里的cout做拼接:
#include <print>
int main() {
int age = 20;
double score = 91.5;
// 使用std::print格式化输出,{}会被后面变量依次替换
std::print("姓名:{},年龄:{},分数:{}n", "小明", age, score);
// 使用std::println自动换行
std::println("程序执行完毕");
return 0;
}
和旧写法对比
过去用cout写同样内容会比较啰嗦,而且容易漏掉换行或类型转换。参考下表:
| 方式 | 代码示例 |
|---|---|
| cout旧写法 | std::cout << "年龄:" << age << std::endl; |
| print新写法 | std::print("年龄:{}n", age); |
为什么更便捷
- 减少拼接符号,可读性更高
- 编译期做格式检查,降低运行时错误
- 支持更多类型直接输出,不用重载流运算符
编译器支持与开启方式
目前较新的GCC、Clang和MSVC都已支持该特性。以GCC为例,需要加上-std=c++23参数:
g++ main.cpp -std=c++23 -o app
小结
借助C++23的print,我们可以用更短的代码完成格式化输出,逻辑也更直观。建议在支持新标准的项目里逐步替换旧的cout写法,提升维护效率。