【C++】printf格式化输出

本文详细介绍了C语言中printf函数的使用方法,包括转换说明符、标志、格式字符串等关键概念,以及如何通过这些元素实现对不同类型数据的精确输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.转换说明符

      %a(%A)     浮点数、十六进制数字和p-(P-)记数法(C99)
      %c         字符
      %d         有符号十进制整数
      %f         浮点数(包括float和double)
      %e(%E)     浮点数指数输出[e-(E-)记数法]
      %g(%G)     浮点数不显无意义的零"0"
      %i         有符号十进制整数(与%d相同)
      %u         无符号十进制整数
      %o         八进制整数    e.g.     0123
      %x(%X)     十六进制整数0f(0F)   e.g.   0x1234
      %p         指针
      %s         字符串
      %%         "%"

比如输出字符串:

#include "stdio.h"

int main()
{
    char arr[5] = {90,91,92,93,94};
    printf("%s \n", arr);

    printf("%d \n", arr[0]);

    return 0;
}

结果为: 

 

2.标志

      左对齐:  "-"   e.g.   "%-20s"
      右对齐:   "+"   e.g.   "%+20s"
      空格:    若符号为正,则显示空格,负则显示"-"   e.g.   "%  6.2f"      
      #:     对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点。

 

3.格式字符串(格式)

    [标志][输出最少宽度][.精度][长度]类型
     "%-md" :  左对齐,若m比实际少时,按实际输出。
     "%m.ns":  输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
                      e.g.    "%7.2s"   输入CHINA
                                       输出"     CH"
     "%m.nf":  输出浮点数,m为宽度,n为小数点右边数位
                      e.g.    "%3.1f"   输入3852.99
                                        输出3853.0 
     长度:     为h短整形量,l为长整形量

### C++ `printf` 函数的格式化输出C++中,`printf`函数用于向标准输出流(通常是控制台)发送格式化的字符串。此函数允许指定各种数据类型的占位符,在实际调用时会被相应的变量值替换。 #### 基本语法结构 ```c++ printf(format_string, argument_list); ``` - `format_string`: 包含普通字符以及特殊格式说明符(以百分号%开头),用来指示后续参数的数据类型。 - `argument_list`: 跟随其后的是一系列要插入到格式串中的实参列表。 #### 示例代码展示 以下是几个常见的例子来解释如何使用`printf`进行不同类型的格式化输出: ##### 整型数值输出 ```cpp int num = 123; printf("Integer value: %d\n", num); // 输出整数,默认十进制显示 ``` ##### 浮点数输出并限定精度 ```cpp double pi = 3.1415926535; // 控制浮点数的小数位数为两位 printf("Pi with two decimal places: %.2f\n", pi); // 使用科学记数法表示浮点数,并保持五位有效数字 printf("Scientific notation of Pi: %.5e\n", pi)[^4]; ``` ##### 字符串输出 ```cpp const char* message = "Hello world!"; printf("Message: %s\n", message); // 输出字符串 ``` ##### 多种类型混合输出 当需要在同一行内输出多种不同类型的信息时,可以按照顺序依次提供对应的参数: ```cpp char ch = 'A'; float fval = 78.90; int intval = 100; printf("Character:%c Float Value:%.1f Integer Value:%d\n", ch, fval, intval); ``` 尽管如此,值得注意的是虽然`printf`提供了强大的格式化能力,但在现代C++编程实践中推荐优先考虑更安全的选择如`std::cout`配合流操作符或是新引入的标准库特性如`std::format`[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值