作者在 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
————————————
*/
时间: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
————————————
*/