printf函数是格式化输出函数, 一般用于向标准输出设备(显示器、控制台等终端)按规定格式输出信息,可以方便有效的打印输出所需要的信息及内容;在应用printf函数时需要添加包含stdio.h的头文件。
printf的原型函数为:int printf ( const char * format, ... )
printf的调用格式为:printf("格式化字符串", 参量表)
格式化字符串包含三类信息:
普通字符:普通字符即需要在输出时原样输出的字符。
格式字符:格式字符由“%”引导,如%d、%f等;作用是控制输出字符的格式;按照一定格式输出;%后面跟着各种格式控制符,以说明输出数据的类型、宽度、精度等)。
转义字符:格式控制字符串里的转义字符按照转义后的含义输出,如换行符“\n”等。
参量表:需要输出的一系列参数,要求必须与格式化字符串在数量和类型上应该一一对应,参数间以”,”分开。
printf函数中的格式字符:
序号 | 格式字符 | 说明 |
1 | d | 输出带符号的十进制整数,正数的符号省略 |
2 | u | 以无符号的十进制整数形式输出 |
3 | o | 以无符号的八进制整数形式输出,不输出前导符0 |
4 | x | 以无符号十六进制整数形式(小写)输出,不输出前导符0x |
5 | X | 以无符号十六进制整数形式(大写)输出,不输出前导符0X |
6 | f | 以小数形式输出单、双精度数,隐含输出6位小数 |
7 | e | 以指数形式(小写e表示指数部分)输出实数 |
8 | E | 以指数形式(大写E表示指数部分)输出实数 |
9 | g | 自动选取f或e中输出宽度较小的一种使用,且不输出无意义的0 |
10 | c | 输出一个字符 |
11 | s | 输出字符串 |
在格式字符前面加上“%”引导,就可以转变为格式控制字符,如%d、%c等
printf函数中的格式修饰符:
序号 | 格式修饰符 | 说明 |
1 | 英文字母l | 修饰格式字符d、u、o、x时,用于输出long型数据 |
2 | 英文字母L | 修饰格式字符f、e、g时,用于输出long double型数据 |
3 | 英文字母h | 修饰格式字符d、o、x时,用于输出short型数据 |
4 | 输出域宽m | 指定输出项输出时所占的列数 |
5 | 显示精度.n | 对于实数,表示输出n位小数;对于字符串,表示截取的字符个数 |
6 | -(减号) | 输出数字或字符在域内向左靠 |
转义字符:
字符 | 说明 | 字符 | 说明 |
\a | 铃声(提醒) | \b | Backspace |
\f | 换页 | \n | 换行 |
\r | 回车 | \t | 水平制表符 |
\v | 垂直制表符 | \’ | 单引号 |
\” | 双引号 | \ | 反斜杠 |
\? | 文本问号 | \ ooo(例如:\024) | ASCII字(OC X) |
\xhh(例如:\x20) | ASCII字符(HEX) | \xhhhh | 宽字符(2字节HEX) |
printf的例子如下:
1.普通字符输出,无参量表
例如:
#include<stdio.h>
int main(){
printf("Hello world");
return 0;
}
编译后运行输出:
Hello world
2.普通字符输出+转义字符,无参量表
例如:
#include<stdio.h>
int main(){
printf("Hello world\n");
printf("Welcome\n");
return 0;
}
编译后运行输出:
Hello world
Welcome
3.普通字符输出+格式字符+转义字符,有参量表
例如:
#include<stdio.h>
int main(){
int Val=100;
printf("Val的值为%d\n",Val);
return 0;
}
编译后运行输出:
Val的值为100
4.指定数据宽度和小数位输出个数并向右对齐
如%m.nf,m表示输出数据的宽度,即占m列,n表示小数点后保留n位小数。(若不需强调输出数据宽度,可直接用%.nf)
例如:
#include<stdio.h>
int main(){
double Val=1.0;
printf("%18.13f\n",Val/3);
return 0;
}
编译后运行输出:
0.33333333333333
5.指定数据宽度和小数位输出个数并向左对齐
如%m.nf,m表示输出数据的宽度,即占m列,n表示小数点后保留n位小数。(若不需强调输出数据宽度,可直接用%.nf)
例如:
#include<stdio.h>
int main(){
double Val=1.0;
printf("%-18.13f\n",Val/3);
return 0;
}
编译后运行输出:
0.33333333333333
6.输出单个字符和字符串,有参量表
例如:
#include<stdio.h>
int main(){
char ch = 'a';
char* Val = "Hello world";
printf("%c\n",ch);
printf("%s\n",Val);
return 0;
}
编译后运行输出:
a
Hello world
注意:格式控制字符串中有%引导的格式字符时,输出值参数表中的数量以及类型必须和格式字符一致。