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>
int main(int argc, char *argv[])
{
long int y=11111;
printf("y=%-8ld\n",y) ;
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%8ld\n",y);
printf("y=%+8ld\n",y);
return 0;
}
//-----------------------------------------
再附上执行结果
//-----------------------------------------
1),%-8ld,表示y长度为8位,不够的部分在后面补空格。这和%8ld相对,即在前面补空格;
2), 在1)的基础上加上0表示不够部分补零(和1) 所述情况对应)
3), %+8ld并不是神马特殊情况,只不过是在这段串中加了个 + //+ 也用来补空格了、、