欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-02 18:38:22
各位看官们,大家好,上一回中咱们说的是通过printf函数输出%的例子,这一回咱们继续说该例子 。闲话休提,言归正转。让我们一起talk c栗子吧! 看官们,我们在前一回中介绍了如何在printf...

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


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

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

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

#include

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);               //使用默认宽度输出宽度为2和3的内容
    printf("%4d,%4d \n",a,b);             //使用固定宽度输出宽度为2和3的内容
    printf("%4d,%4d \n",a,d);             //使用固定宽度输出宽度为2和5的内容
    printf("%4d,%4d \n",d,b);             //使用固定宽度输出宽度为5和2的内容

    printf("%d,%d \n",c,c);                //输出标尺,供参考使用
    printf("%*d,%*d \n",width,a,width,b);  //使用可变宽度输出宽度为2和3的内容
    printf("%*d,%*d \n",width,a,width,d);  //使用可变宽度输出宽度为2和5的内容
    printf("%*d,%*d \n",width,d,width,b);  //使用可变宽度输出宽度为5和3的内容
    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函数中设置输出宽度的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。