详解printf

printf函数的格式控制符包括%[flag][width][.precision]type,其中flag用于指定对齐方式,width指定输出的最小宽度,precision定义小数精度。通过-标志可实现左对齐输出,+标志要求显示正负号。示例代码展示了不同参数的效果。
摘要由CSDN通过智能技术生成

printf() 格式控制符的完整形式如下:

%[flag][width][.precision]type

[]中的内容可以省略

  • type表示要输出的类型,如%d,%c等,此项必须有,具体的格式控制符见下表

 

  • flag表示输出的最小宽度,如果宽度不足,即小于width,输出时会用空格补齐;如果宽度大于width,限制不再起作用,直接按照数据本身的长度进行输出
#include<stdio.h>
int main()
{
    int a = 123;
    float b = 9.8;
    char c = 'a';
    char *str = "abcdefghijklmn";
    printf("%10d%12f%4c%8s",a,b,c,str);
    return 0;
}

 返回的结果是

 可以发现,a在输出时,加上前面空格的长度,一共是10个单位。同样,b在输出时一共也是占了12个位置。然而在字符串str的输出时,他本身的长度就差超过了8个位置,所以正常输出。

  • .precision表示小数的输出精度,也就是小数的位数

要强调的是,如果数据本身比要求输出的精度要长,这里会四舍五入

如果数据比要求的精度短,就会在结尾补上0

  • flag时标志字符。

 

 如果要输出一组数据,要求左对齐,就可以使用‘-’

#include <stdio.h>
int main()
{
    int a1 = 20, a2 = 345, a3 = 700, a4 = 22;
    int b1 = 56720, b2 = 9999, b3 = 20098, b4 = 2;
    int c1 = 233, c2 = 205, c3 = 1, c4 = 6666;
    int d1 = 34, d2 = 0, d3 = 23, d4 = 23006783;
    printf("%-9d %-9d %-9d %-9d\n", a1, a2, a3, a4);
    printf("%-9d %-9d %-9d %-9d\n", b1, b2, b3, b4);
    printf("%-9d %-9d %-9d %-9d\n", c1, c2, c3, c4);
    printf("%-9d %-9d %-9d %-9d\n", d1, d2, d3, d4);

    return 0;
}

结果是

这样就实现了左对齐的要求(正数时是右对齐,负数时是左对齐)

 如果要求输出带正负号的数字,就要使用‘+’

#include<stdio.h>
int main()
{
    int a = 1,b = -1;
    printf("%+d  %+d\n",a,b);
    return 0;
}

输出结果就是

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值