一起talk C栗子吧(第一百八十三回:C语言实例--在printf函数中设置输出宽度二)


各位看官们,大家好,上一回中咱们说的是通过printf函数输出%的例子,这一回咱们继续说该例子 。闲话休提,言归正转。让我们一起talk C栗子吧!


看官们,我们在前一回中介绍了如何在printf函数中设置输出宽度,相信大家现在已经会设置了,不过关于输出宽度的设置还有一些细节需要和大家说明:

  • 1.使用固定的宽度
    • 如果输出内容的宽度小于或者等于固定的宽度,那么输出内容的宽度为固定宽度,宽度不足的内容使用空格来填充;
    • 如果输出内容的宽度大于固定的宽度,那么输出内容的宽度为该内容自身 的宽度,它不受限于固定宽度;
  • 2.使用可变的宽度
    • 如果输出内容的宽度小于或者等于可变的宽度,那么输出内容的宽度为可变宽度,宽度不足的内容使用空格来填充;
    • 如果输出内容的宽度大于可变的宽度,那么输出内容的宽度为该内容自身 的宽度,它不受限于可变宽度;

这么说,感觉像在说绕口令,估计大家都没有听明白,大家别担心,我们会举例子来说明的,再说了,光说不练,也不是我们的风格,接下来我们就通过具体的例子来说明这些细节:

#include<stdio.h>

int main()
{
    int a = 33;
    int b = 333;
    int c = 1234;
    int d = 12345;
    int width = 4;

    printf("%d,%d \n",c,c);               //使用默认宽度输出宽度为4的内容,当作标尺使用
    printf("%d,%d \n",a,b);               //使用默认宽度输出宽度为23的内容
    printf("%4d,%4d \n",a,b);             //使用固定宽度输出宽度为23的内容
    printf("%4d,%4d \n",a,d);             //使用固定宽度输出宽度为25的内容
    printf("%4d,%4d \n",d,b);             //使用固定宽度输出宽度为52的内容

    printf("%d,%d \n",c,c);                //输出标尺,供参考使用
    printf("%*d,%*d \n",width,a,width,b);  //使用可变宽度输出宽度为23的内容
    printf("%*d,%*d \n",width,a,width,d);  //使用可变宽度输出宽度为25的内容
    printf("%*d,%*d \n",width,d,width,b);  //使用可变宽度输出宽度为53的内容
    printf("%d,%d \n",c,c);                //输出标尺,供参考使用

    return 0;
}

我们把上面的内容保存到文件中,然后编译生成可执行文件,并且运行该可执行文件,下面是程序的运行结果,请大家参考:

1234,1234      //第一行,当作标尺使用
33,333             //第二行
  33, 333          //第三行
  33,12345       //第四行
12345, 333      //第五行
1234,1234       //第六行,当作标尺使用
  33, 333          //第七行
  33,12345       //第八行
12345, 333      //第九行
1234,1234       //第十行,当作标尺使用

大家对比第一行和第二行的内容可以看出,使用默认宽度输出内容时,输出内容的宽度与内容自身的宽度保持一致。

大家对比第二行和第三行的内容可以看出,使用固定宽度输出内容时,输出内容的宽度与固定宽度保持一致,不过此时输出内容自身的宽度比固定宽度小,因此才有这种结果。如果输出内容自身的宽度比固定宽度大,那么输出内容的宽度就是其自身的宽度,我们在第四行和第五行中可以看出来,它们比第三行的宽度要大,虽然它们都使用了相同的固定宽度,但是输出内容的宽度是不同的。其实这点也容易理解,毕竟我们优先保证输出内容,然后才看输出内容时的宽度设定。

使用可变宽度进行宽度设置时,其结果和使用固定宽度进行宽度设置的结果相同,我们就不做详细分析了。此外,我们在代码中使用的可变宽度为4,该值和固定宽度的值相同,大家可以把第七行,八行,九行的运行结果中和第三行,四行,五行的运行结果进行对比,它们是完全相同的。鉴于这个原因,第七行,八行,九行这三行的运行结果对比就留给大家了,哈哈。

此外,这里是文本显示,大家可能看不清楚其中的空格,建议大家自己动手实践一下,从终端中可以清楚地看出来其中的空格。为了方便观看,我们还专门设定了宽度为4的标尺,大家可以依据自己的需要来设置标尺,标尺的宽度也可以自行设定。

各位看官,关于在printf函数中设置输出宽度的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值