第二章- c语言中的格式化输出

五、数据的格式化输出
  1. 格式输出函数:printf()

    (1) 函数格式1:printf("字符串常量");
                 例如:printf("helloWorld");
                 功能:将字符串内容按照原样式输出
    (2) 函数格式2:printf("格式控制",输出项列表);
                 例如:int a = 8;  printf("%d",a);
                      printf("%d %d\n",a,b);
                      printf("a=%d b=%d",a,b);
                 功能:按照"格式控制"指定的格式输出对应的数据
    
  2. printf函数格式说明

    格式字符说明
    %d有符号十进制整数数据的实际长度输出(正数不输出符号)
    %o以八进制无符号形式输出整数(不输出前导符0)
    %x 或是 %X以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的
    a~f时以小写形式输出,用X时,则以大写字母输出
    %u无符号十进制整数
    %c输出一个字符
    %s输出字符串
    %f浮点数(包括float和doulbe),以小数形式输出
    %e或是%E以指数形式输出单、双精度数,数字部分的小数位数为6位
    %g或是%G浮点数不显无意义的零"0",它根据数值的大小,自动选f格式或e格式
    (选择输出时占宽度较小的一种)
    注意:表格中常用的几个格式化符号为:d、c、s、f
    例如:int a = 30;
         printf("%d",a);
         double score = 3.8;
         printf("%d",score);
         char ch = 'x';
         printf("%c",ch);
    
  3. 格式字符具体讲解

    (1) d格式符:用来输出一个有符号的十进制整数
        a. 例如:int a = 8;  printf("%d",a);
                printf("%d %d\n",a,b);
        b. 可以在格式声明中指定输出数据的域宽(所占的列数):"%5d",指定输出数据占5列
           例如:printf("%5d\n %5d\n",12,-345);
                   12 (12前面有3个空格)
                  -345(-345前面有1个空格)
        c. "%ld" :输出 long长整型数据
        
    (2) c格式符:用来输出一个字符
        a. 例如:char ch = 'a';
                printf("%c",ch);
        b. 也可以指定域宽:
                printf("%5c",ch); 
                    a  (前面有5个空格)
    (3) s格式符:用来输出一个字符串
                printf("%s","China");
                China
    (4) f格式符:用来输出实数(包括单、双精度),以小数形式输出
        a. 基本形式: "%f" ,实数中的整数部分全部输出,小数部分输出6位
                double a = 1.0;
                printf("%f\n",a/3);
                0.333333
        b. 指定数据宽度和小数位数,用 "%m.nf",输出域宽(输出时占的总位数)m和精度(小数位)n
           i. “%7.2”格式指定了输出数据占7列,其中包括小数2位,对最后一位采取四舍五入方式处理
           ii.若指定的域宽小于数据的实际位数,则按实际位数输出
           iii. 默认是右对齐,左补孔,可以加前导0,则会左补0;加-,表示左对齐右补空
           iv. 例如:
                float x=1234.5678f;
                printf("%.2f#\n",x);//保留两位小数输出,以字符#结束
                --1234.57#
                printf("%3.2f#",x);//指定域宽小于实际位数,按照实际位数输出,并保留两位小数
                --1234.57#
                printf("%12.2f#",x);//域宽为12位,小数2位,右对齐,左补空
                --     1234.57#     // 共计12位,补空5位,
                printf("%012.2f#",x);//域宽为12位,小数2位,右对齐,左补0
                --000001234.57#
                printf("%-12.2f#",x);//域宽为12位,小数2位,左对齐,右补空
                --1234.57     #
    (5) e格式符:用来以指数形式输出实数
        a. 不指定,默认为小数位数为6位,指数部分占5列(e+001,e-1列,指数符号+占2列,指数001-3列)
           printf("%e",123.456);
           --1.234560e+002
        b. 也可以使用 "%m.ne"形式格式化输出
           printf("%13.2e",123.456); 
           --    1.23e+002  (前面4个空格)
        c. 格式符 e也可以写成 E,结果也是大写
           printf("%13.2E",123.456); 
           --    1.23E+002  (前面4个空格) 
    
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值