printf:
#include<stdio.h>
printf(const char *format,......)
功能:按照规定格式输出制定数据
一般形式
printf(格式控制,参数列表);
格式控制:用双引号括起来格式控制转换字符串
格式字符:由“%+格式字符”组成,将指定类型的参数按指定格式输出
字符串:原样输出
转义字符:对输出的形式进行控制(换行)
参数列表:与格式控制中的格式字符相对应的参数列表,可以是常量、变量、表达式
printf("Answer: %d \n", 10);
输出为:Answer:10
格式说明
%[-][0][m][.n][l]格式字符
字符格式属性说明
字符格式 属性说明 | 说明 |
- | 输出的数字或字符以左对齐,右边填空格。 |
0 | 输出的空位用0填充。 |
m | 输出数据的字段宽度。如果实际位数多于m,按实际位数输出;如果实际位数少于m,则补以空格或0。 |
.n | 对实数,表示输出n位小数;对字符串,表示截取的字符个数。 |
l | 输出长整型整数 |
格式字符 | 说明 |
%c | 以字符形式输出的单个字符 |
%d | 以带符号的十进制形式输出整数 |
%o | 以无符号的八进制形式输出整数 |
%x | 以无符号的十六进制形式输出整数 |
%f | 以小数点形式输出单、双精度的浮点型数据 |
%e | 以科学计数法输出小数 |
%g | 选用宽度较小的格式输出实数 |
%s | 输出字符串,以‘\0’位结束符 |
%u | 输出无符号整数 |
%p | 一个指针 |
%% | 输出% |
特别注意:
1.o、x、u格式符
将内存单元中的二进制数直接转换成八进制、十六进制或十进制输出。
例如:
int a=-1;
printf("%d,%o,%x,%u",a,a,a,a);
输出为
-1,37777777777,ffffffff, 4294967295
2.%c格式符的使用
将一个字符或0~255的整数输出。
#include <stdio.h>
main( )
{ char x=‘a’; int i=97;
printf("%c,%d\n",x,x);
printf("%c,%d\n",i,i);
}
运行结果为:
a,97
a,97
3.%f格式符
%f:整数部分全部输出,小数部分输出六位,不足六位时,用0补齐
4.%e格式符
输出数据共占13位,其中整数部分1位;小数点1位;小数部分6位;e占1位;指数符号占1位;指数值占3位。如果是负数,还应在整数前增加符号位。
5.%g格式符
根据数值的大小,自动选择f格式或者e格式输出实数。输出时选择输出宽度较小的格式输出,且不输出无意义的0.
格式字符中,除了X、E、G外,其他均用小写字母,如“%d”不能写成“%D”。
不同类型的数据应使用相应类型的格式字符说明其输出形式。
如需输出双引号,应在“格式控制”中表示为转义字符的形式并用单引号引起来,即“\””。
如需输出字符“%”,在“格式控制”中用连续两个“%”即可。
如:printf(“%d%%”,s);
当“格式控制”中格式符个数少于输出表中的输出项时,多余的输出项不予输出。
当“格式符”多于输出项时,结果为不定值。
八进制--octal
十进制--decimalism
十六进制--hexadecimal