printf()
printf函数称之为格式输出函数,方法名称的最后一个字母f表示format。其功能是按照用户指定的格式,把指定的数据输出到屏幕上
printf()是有返回值的,可以用int接收,返回值为打印出的字符数 \n也算一个字符数。
printf函数的调用格式为:
- printf(“格式控制字符串”,输出项列表 );
- 例如:printf(“a = %d, b = %d”,a, b);
- 非格式字符串原样输出, 格式控制字符串会被输出项列表中的数据替换
- 注意: 格式控制字符串和输出项在数量和类型上必须一一对应
格式控制字符串
形式: %[标志][输出宽度][.精度][长度]类型
类型
格式: printf(“a = %类型”, a);
类型 | 含义 |
---|---|
d | 有符号10进制整型 |
i | 有符号10进制整型 |
u | 无符号10进制整型 |
o | 无符号8进制整型 |
x | 无符号16进制整型 |
X | 无符号16进制整型 |
f | 单、双精度浮点数(默认保留6位小数) |
e / E | 以指数形式输出单、双精度浮点数 |
g / G | 以最短输出宽度,输出单、双精度浮点数 |
c | 字符 |
s | 字符串 |
p | 地址 |
#include <stdio.h>
int main() {
int a = 11;
int b = -12;
float c = 6.6f;
double d = 3.1415926;
double e = 13.09;
char f = 'a';
// 有符号整数(可以输出负数)
printf("a = %d\n", a); // 11
printf("a = %i\n", a); // 11
// 无符号整数(不可以输出负数)
printf("a = %u\n", a); // 11
printf("b = %u\n", b); // 4294967284
// 无符号八进制整数(不可以输出负数)
printf("a = %o\n", a); // 13
printf("b = %o\n", b); // 37777777764
// 无符号十六进制整数(不可以输出负数)
printf("a = %x\n", a); // b
printf("b = %x\n", b); // fffffff4
// 无符号十六进制整数(不可以输出负数)
printf("a = %X\n", a); // B
printf("b = %X\n", b); // FFFFFFF4
// 单、双精度浮点数(默认保留6位小数)
printf("c = %f\n", c); // 6.600000
printf("d = %lf\n", d); // 3.141593
// 以指数形式输出单、双精度浮点数
printf("e = %e\n", e); // 1.309000e+01
printf("e = %E\n", e); // 1.309000E+01
// 以最短输出宽度,输出单、双精度浮点数
printf("e = %g\n", e); // 13.09
printf("e = %G\n", e); // 13.09
// 输出字符
printf("f = %c\n", f); // a
return 0;
}
标志
格式:
printf(“a = %[标志][宽度]类型”, a);
标志 | 含义 |
---|---|
- | 左对齐, 默认右对齐 |
+ | 当输出值为正数时,在输出值前面加上一个+号, 默认不显示 |
0 | 右对齐时, 用0填充宽度.(默认用空格填充) |
空格 | 输出值为正数时,在输出值前面加上空格, 为负数时加上负号 |
# | 对c、s、d、u类型无影响 |
# | 对o类型, 在输出时加前缀o |
# | 对x类型,在输出时加前缀0x |
#include <stdio.h>
int main(){
int a = 1;
int b = -1;
// -号标志