试验第三章中各种格式符的用法

作者在 2011-10-10 11:22:45 发布以下内容
 
 
/*
时间:2011年10月10日11:08:17
目的:实验printf中各种格式符的用法
*/
# include <stdio.h>

int main()
{
    
//d格式符的用法
    printf("%d\n",5);            //最后输出5     d格式符用来输出一个有符号的十进制整数,正号不显示
    printf("%d\n",-5);            //最后输出-5

//i格式符的用法
    printf("%d\n",5);            //最后输出5     i格式符与d格式符用法一样

//f格式符的用法
    double a=1;
    printf("a= %f\n",a);        //最后输出a= 1.000000  使用f格式符时,实数部分全部输出,小数部分输出6位
    printf("a= %lf\n",a);        //在这里使用lf格式符与f格式符没有区别

    printf("a= %7.2f\n",a/3);    //最后输出a=    0.33  %m.nf可以指定数据宽度和小数位数
                                
//这里用的%7.2f 表示 输出的数据占7列,其中包括2位小数,末位四舍五入,靠右显示
    printf("a= %7.0f\n",a/3);    //最后输出a=       0  指定小数位数为0,则不输出小数,小数点也不显示

    printf("a= %20.15f\n",a/3);    //最后输出a=    0.333333333333333 输出了15位有效小数
    printf("a= %-20.15f\n",a/3);//最后输出a= 0.333333333333333    %-m.nf中的负号表示左对齐
    printf("a= %-20.18f\n",a/3);//最后输出a= 0.333333333333333310 double只能保证15位有效数字,15位以后不保证输出是对的
    
    float b=1/3.0;                //比较一下float和double在有效数字上的区别
    printf("b= %-20.18f\n",b);    //最后输出b= 0.333333343267440800  6位有效数字
    double c=1/3.0;
    printf("c= %-20.18f\n",c);    //最后输出c= 0.333333333333333310  15位有效数字

//e格式符的用法
    printf("%e\n",123.456);        //最后输出1.234560e+002  默认的格式是小数点前有且只有1位非0数字
                                
//小数部分占6列,如这里的234560.指数部分占5列 如这里的e+002。所以总共占13列
    printf("%E\n",123.456);        //最后输出1.234560E+002 格式符用大写E,输出的也是E
    printf("%e\n",123.456789);    //最后输出1.234568e+002  小数部分超出6列时,仍按6列显示,末位四舍五入
    printf("%e\n",0.00123456);    //最后输出1.234560e-003  纯小数的指数部分为负值,小数点前仍然有且只有1位非0数字
    printf("%13.3e\n",0.00123456);//最后输出   1.235e-003  %m.ne表示总共占m列,小数部分占n列,靠右对齐

//g格式符的用法
    double d = 12345678954321;    //g格式符用来输出浮点数,系统自动选择f格式还是e格式中长度较短的格式
    printf("%f %e %g\n",d,d,d);    //最后输出12345678954321.000000 1.234568e+013 1.23457e+013

//c格式符的用法
    printf("%c\n",'A');        //最后输出A  c格式符用来输出一个字符
    printf("%5c\n",'A');    //最后输出    A 指定显示的域宽,A之前有4个空格
    printf("%c\n",97);        //最后输出a  0~127以内的整数可以用c格式符输出整数对应的ASCII字符
    char ch='B';
    printf("%c\n",ch);        //最后输出B
    

//s格式符的用法
    printf("%s\n","CHINA");    //最后输出CHINA  s格式符用来输出一个字符串
    printf("%7.3s\n","CHINA");    //最后输出    CHI  %m.ns中m表示所占的列数,n表示字符串中被截取的长度

//o格式符的用法
    printf("%o\n",9);        //最后输出11 o格式符用来按8进制输出  输出结果不带符号
    printf("%o\n",-1);        //最后输出37777777777  因为-1的补码是11111111 11111111 11111111 11111111
                            
//转换时每三位一组进行转换 写成11 111 111 111 111 111 111 111 111 111 111,其中111对应8进制的7,11对应8进制的3
    
//x格式符的用法
    printf("%x\n",10);        //最后输出a x格式符用来按16进制输出  输出结果不带符号
    printf("%x\n",-1);        //最后输出ffffffff
    printf("%X\n",-1);        //最后输出FFFFFFFF  格式符用大写X,输出也为大写
    printf("%#X\n",-1);        //最后输出0XFFFFFFFF 这种写法效果最好

//u格式符的用法
    printf("%u\n",10);        //最后输出10  u格式符用来输出无符号型的整数
    printf("%u\n",-1);        //最后输出4294967295

    return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
5
-5
5
a= 1.000000
a= 1.000000
a=    0.33
a=       0
a=    0.333333333333333
a= 0.333333333333333
a= 0.333333333333333310
b= 0.333333343267440800
c= 0.333333333333333310
1.234560e+002
1.234560E+002
1.234568e+002
1.234560e-003
   1.235e-003
12345678954321.000000 1.234568e+013 1.23457e+013
A
    A
a
B
CHINA
    CHI
11
37777777777
a
ffffffff
FFFFFFFF
0XFFFFFFFF
10
4294967295
Press any key to continue
————————————
*/
《C程序设计》学习 | 阅读 1996 次
文章评论,共0条
游客请输入验证码
最新评论