printf函数:
原型:extern void printf(const char *format,...);
用法:#include <stdio.h>
功能:格式化字符串输出
说明:format指定输出格式,后面跟要输出的变量
目前printf支持以下格式:
%c 单个字符
%d 十进制整数
%f 十进制浮点数
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%% 输出百分号%
一个格式说明可以带有几个修饰符,用来指定显示宽度,小数尾书及左对齐等:
- 左对齐
在一个带符号数前加" "或"-"号
0 域宽用前导零来填充,而不是用空白符
域宽是一个整数,设置了打印一个格式化字符串的最小域。精度使用小数点后加数字表示的,
给出每个转换说明符所要输出的字符个数。
下面这个例子运行以后自己看了好久都没有看懂:
==================================================
#include<stdio.h>
int main(){
int i = 43;
printf("%d\n",printf("%d",printf("%d",i)));
getch();
}
结果输出为:4321
===================================================================================
printf()返回的是一个int值,表示打印的字符数,最里面的一个printf()输出为×××数43,字符长度为2,这个printf()作为第二个printf()中的一个参数,第二个printf()将会输出×××数43的字符长度2,同样第一个输出×××数2的字符长度1,所以运行结果为4321。
下面这个例子很好的说明:
#include<stdio.h>
int main(){
int a;
int b;
int c;
int i = 123456;
printf("\n=======此部分输出不用管=============\n");
a = printf("======%d",i);
b = printf("********%d",printf("%d",i));
printf("\n=======此部分输出不用管=============\n\n\n");
printf("********************************************************************");
printf("\n第一个printf结果:");
printf("%d",a);
printf("\n第一个printf语句中输出6个等号和123456,字符长度总共为12");
printf("\n====================================================================");
printf("\n第二个printf结果:");
printf("%d",b);
printf("\n第二个printf输出8个星号和他紧后面printf输出结果的字符长度1,总共为9");
printf("\n**********************************************************************");
getch();
}
运行结果: