Skip to content

std::print(C++23)

一句话

直接把格式化字符串输出到 stdout——std::format + std::cout 的合体,C++23 的新 Hello World 写法。

头文件

#include <print>

核心 API 速查

操作签名说明
输出到 stdoutvoid print(format_string, args...)格式化并输出到标准输出
输出并换行void println(format_string, args...)自动追加换行符
空行void println()仅输出一个换行符
输出到文件void print(FILE* f, format_string, args...)输出到指定 C 文件流
输出到文件并换行void println(FILE* f, format_string, args...)换行版
输出到流void vprint_unicode(std::ostream&, ...)输出到 C++ 流

最小示例

cpp
// Standard: C++23
#include <print>

int main() {
    std::print("Hello, {}!\n", "world");
    std::println("value = {}", 42);
    std::println("{:>10.2f}", 3.14159); //       3.14
    std::println();                      // 空行
}

嵌入式适用性:低

  • 依赖 stdout 和文件系统抽象层,裸机环境通常没有标准输出
  • 适用于嵌入式 Linux 上位机工具、测试框架的日志输出
  • 格式化引擎的 Flash 开销较大,资源极度受限设备不建议引入
  • 可用 {fmt} 库的 fmt::print 作为 C++11 起的后备方案

编译器支持

GCCClangMSVC
141819.34

另见


部分内容参考自 cppreference.com,采用 CC-BY-SA 4.0 许可

基于 VitePress 构建