鱼C论坛

 找回密码
 立即注册
查看: 2798|回复: 3

请帮忙解释下面输出代码!!

[复制链接]
发表于 2012-8-8 12:04:26 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
int main()
{
        long y=-43456;
        printf("y=%-8ld\n",y);
        printf("y=%-08ld\n",y);
        printf("y=%08ld\n",y);
        printf("y=%+8ld\n",y);
        return 0;
}
上面的printf("y=%-8ld\n",y);
        printf("y=%-08ld\n",y);
        printf("y=%08ld\n",y);
        printf("y=%+8ld\n",y);
       不明白,求解释!!

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-8 12:04:27 | 显示全部楼层
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         long y=-43456;
  5.         printf("y=%-8ld\n",y);                // 规定输出的数据宽度占8列  当输出的数据不超过8列时  数据向左靠齐 右端补空格
  6.         printf("y=%-08ld\n",y);                // 这个在8的前面加咯一个0  这个不是太清楚  应该是在数据不超过8列时  右端补0 (我都没用过这种格式)
  7.         printf("y=%08ld\n",y);                //这个规定输出的数据宽度占8列,  8前面没有-号 有个0 表示数据在输出时  数据靠右, 左端不够8列 补0
  8.         printf("y=%8ld\n",y);                //这个规定输出的数据宽度占8列,  8前面没有-号  表示数据在输出时  数据靠右, 左端不够8列 补空格
  9.         return 0;
  10. }
复制代码
错了  勿喷啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-8 12:21:01 | 显示全部楼层
本帖最后由 骗子死全家 于 2012-8-8 12:33 编辑

一编译结果就很显然

#include<stdio.h>
int main()
{
        long y=-43456;
        printf("y=%-8ldx\n",y);    //-43456    x
        printf("y=%-08ldx\n",y);  //-43456    x
        printf("y=%08ldx\n",y);   //-0043456x
        printf("y=%+8ldx\n",y);   //    -43456x
        return 0;
}
根据 %md 。 m为指定的输出字段的宽度。如果数据的位数小于m,则左端补空格,大于m,则按实际输出。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-13 13:49:35 | 显示全部楼层
同意楼上的  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 03:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表