各位看官们,大家好,上一回中咱们说的是通过printf函数输出%的例子,这一回咱们继续说该例子 。闲话休提,言归正转。让我们一起talk C栗子吧!
看官们,我们在前一回中介绍了如何在printf函数中设置输出宽度,相信大家现在已经会设置了,不过关于输出宽度的设置还有一些细节需要和大家说明:
这么说,感觉像在说绕口令,估计大家都没有听明白,大家别担心,我们会举例子来说明的,再说了,光说不练,也不是我们的风格,接下来我们就通过具体的例子来说明这些细节:
#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函数中设置输出宽度的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。