C语言 格式输出 printf("y=%-8ld\n",y); 与printf("y=%-08ld\n",y); printf(&qu

C语言 格式输出 printf("y=%-8ld\n",y); 与printf("y=%-08ld\n",y); printf("y=%-8ld\n",y);
printf("y=%-8ld\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);

输出上有什么区别 特别是 "-08" "+8" "08" 都代表什么?

我主要是不明白 “08” 中的0是什么意思 还有 为什么“08”和“+08” 输出结果的格式不一样?? “+8” 输出结果前面要带两个空格

如程序:
#include "stdio.h"
void main()
{
int y=9;
printf("y=%-8ld\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);
}
输出结果为:
y=9
y=9
y=00000009
y= +9
为什么呢?
因为 "-08" "+8" "08" 都代表输出结果占8个字符的位置。
“-”表示左对齐输出,若无“-”默认是右对齐输出;
上面运行结果中,第1,2个的输出格式中有“-”所以是
左对齐输出,左对齐输出就是先输出数字的值再填空格使其满足
占位字符数,所以第1,2个输出的结果中先输出数值9,然后在数值9的
右边补上7个空格使其满足占位8字符。
第3个输出格式中无“-”,右对齐输出,由于 "08"所以左边填充0.
第4个输出格式中无“-”,右对齐输出,同属要求输出“+"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-03
"+"代表输出为右对齐(也是默认的);“-”代表输出为左对齐;“8”代表输出占8列宽度;“0”为填充字符,也就是说要输出的东西不够指定的列宽(如题中的8列宽度),就用指定的字符(如题中的“0”)填充到指定的列宽。
第2个回答  2011-01-03
看看进制!一个是八进制,一个是十进制本回答被网友采纳