赞
踩
(由于篇幅较长,内容较全,建议收藏)
printf函数的一般格式为:
printf(格式控制字符串,输出值参数表);
如:
printf("f=%f,c=%f\n",f,c);
其中,f=%f,c=%f\n 是格式控制字符串,f,c 是输出值参数表。
输出带符号的十进制整数,正数的符号不输出。
如:
int a = 256,b = -125;
printf("%d\n%d",a,b);
输出结果为:
还可以在%和格式字符中间插入格式修饰符,用于指定输出数据的域宽(所占的列数),如用“%5d”,指定输出数据占5列,输出的数据在域内向右靠齐。如:
int a = 256,b = -125;
printf("%5d\n%5d",a,b);
输出结果为:
其中256前面有2个空格,-125前面有一个空格。
若要输出long(长整型)数据,则在格式字符d前面加字母l(代表long),即“%ld”。
输出一个实数(包括单精度、双精度、长双精度),以小数形式输出,有以下几种用法:
不指定输出数据的长度,由系统根据数据的实际情况决定数据所占的列数。系统处理的方法一般是:实数中的整数部分全部输出,小数部分输出6位。
如:
#include<stdio.h>
int main(){
double a = 1.0;
printf("%f\n",a/3);
return 0;
}
运行结果:
虽然a是double型,a/3的结果也是double型,但用 %f格式字符只能输出6位小数。
其中,m表示输出数据的宽度,即占m列,n表示小数点后保留n位小数。(若不需强调输出数据宽度,可直接用%.nf)
如:
#include<stdio.h>
int main(){
double a = 1.0;
printf("%20.15f\n",a/3);
return 0;
}
运行结果为:
其中,在0前面有3个空格,小数点后输出了15位小数。
注意:一个double型数只能保证15位有效数字的精确度,即使指定小数位数为50(如用%.50f),也不能保证输出的50位都是有效数值。
即在m.n前面加一个负号,能够让输出数据在域内向左靠齐。
如:
#include<stdio.h>
int main(){
double a = 1.0;
printf("%-20.15f\n",a/3);
return 0;
}
运行结果:
用于输出一个字符,如:
#include<stdio.h>
int main(){
char ch = 'a';
printf("%c",ch);
return 0;
}
输出结果:
也可以加格式修饰符指定域宽,如:
#include<stdio.h>
int main(){
char ch = 'a';
printf("%5c",ch);
return 0;
}
输出结果:
用于输出一个字符串,如:
printf("%s","Hello!");
输出结果:
#include<stdio.h>
int main(){
printf("Hello world!");
printf("\n");
printf("Hello,\nworld!");
return 0;
}
输出结果:
#include<stdio.h>
int main(){
int a = 123;
double b = 35.8,c = 1.0;
printf("a = %d,b = %d\n",a,b);
printf("a = %d,c = %f\n",a);
return 0;
}
运行结果:
分析:第一个printf函数中的输出参数b是double型,但对应的格式控制符为%d,当类型不一致时并不会进行类型转换,而会将实际转入的double型值当作需要的整形类型来理解,因此出现非预期结果;第二个printf函数中,格式控制字符串给出了两个%引导的格式字符,但是输出参数表中只有一个参数a。因此输出c的值默认为内存中a变量后面存储单元的数据值,即c的值我们不能确定。
附表1:
printf函数中用到的格式字符
格式字符 | 说明 |
---|---|
d | 输出带符号的十进制整数,正数的符号省略 |
u | 以无符号的十进制整数形式输出 |
o | 以无符号的八进制整数形式输出,不输出前导符0 |
x | 以无符号十六进制整数形式(小写)输出,不输出前导符0x |
X | 以无符号十六进制整数形式(大写)输出,不输出前导符0X |
f | 以小数形式输出单、双精度数,隐含输出6位小数 |
e | 以指数形式(小写e表示指数部分)输出实数 |
E | 以指数形式(大写E表示指数部分)输出实数 |
g | 自动选取f或e中输出宽度较小的一种使用,且不输出无意义的0 |
c | 输出一个字符 |
s | 输出字符串 |
附表2:
printf函数中用到的格式修饰符
格式修饰符 | 说明 |
---|---|
英文字母l | 修饰格式字符d、u、o、x时,用于输出long型数据 |
英文字母L | 修饰格式字符f、e、g时,用于输出long double型数据 |
英文字母h | 修饰格式字符d、o、x时,用于输出short型数据 |
输出域宽m(m为整数) | 指定输出项输出时所占的列数 |
显示精度.n(n为整数) | 对于实数,表示输出n位小数;对于字符串,表示截取的字符个数 |
-(减号) | 输出数字或字符在域内向左靠 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。