C语言入门——printf(““)左对齐与右对齐问题

关于左右对齐概念的理解,可以类比生活中站队,向左对齐,向右对齐。

那么先来看一下左对齐:

一、左对齐

方法①:

printf("%d\n",123456);

在默认情况下,对于字符串的输出,printf函数是左对齐的。例如,使用%s来输出字符串时,它会默认左对齐。

然而,对于数值类型的输出,如整数或浮点数,默认情况下是右对齐的。这是为了保持数值的整齐对齐,以便于阅读和理解。

但是可能是由于IDE(集成开发环境)原因,可能是为了方便阅读,IDE默认设置是左对齐,因此可能导致了输出现在看起来是左对齐,因为试了VS、DevC++等IDE,均设置为靠左对齐,因此本文按照IDE的默认方式进行讲解,请注意甄别。

结合实例加以理解:

有这样一道题,让你输出13579

那么你可以这样写

#include

int main()

{

printf("%d\n",13579);

return 0;

}

输出结果为:

方法②:

printf("%-10d\n",123456)

在打印数字宽度前面加一个“-”。

如果有这样一道题,让你在不使用打印默认格式情况下,输出123456,左对齐且数字宽度为10,那你可以这样写:

#include

int main()

{

printf("%-10d",123456);

return 0;

}

输出结果为:

二、右对齐

printf("%10d",123456);

在%和d之间加上数字宽度即可实现右对齐。

例如有道题,题目要求右对齐的方式输出123456,且数字宽度为10。那么你可以这样写:

#include

int main()

{

printf("%10d",123456);

return 0;

}

输出结果为:

关于%10d中10的解释: 数字宽度为10。

三、补充延伸

如果要打印的位数小于某个设定的数字宽度,则需要在前补足空格;

比如上述这个:有道题,题目要求右对齐的方式输出123456,且数字宽度为10。

#include

int main()

{

printf("%10d",123456);

return 0;

}

输出结果为:

如果要打印的位数大于某个设定的数字宽度,则打印所有的数字,不会截断。

(如果是%d,设定数字宽度为10,那打印的数字最多为10位,如果是十一位,可能要考虑%lld来进行输出了。)

假如有这样一道题:让你输出的位数为6但是设定的数字宽度为5

#include

int main()

{

printf("%5d",123456);

return 0;

}

输出结果为:

如果让你输出的位数为11但是设定的数字宽度为10

#include

int main()

{

printf("%10lld",12345678910);

return 0;

}

输出结果为:

关于左右对齐问题就先说到这里,希望这篇文章能对你有所帮助!

Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder) 点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!