printf()函数是格式化输出函数, 一般用于向标准输出设备(例如屏幕)按规定格式输出信息。
格式为:printf("格式化字符串(可无)输出格式说明(例如%d,%s等)", <参量表>);
printf函数在标准库的 stdio.h 中定义,用于C、C++语言中产生格式化输出,用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明(例如%d,%s等)组成,可以输出字母、数字、空格、一些数字符号和转义字符。
输出格式说明:
%A 浮点数、十六进制数字和p-记法(C99)
%c 一个字符
%d 有符号十进制整数
d格式:用来输出十进制整数。有以下几种用法:%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld:输出长整型数据。
%e 浮点数、e-记数法
%E 浮点数、E-记数法
%f 浮点数、十进制记数法
f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:
%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
%-m.nf:输出共占m列,其中有n位小数,如数值宽度小于m右端补空格。
%g 根据数值不同自动选择%f或%e.
%G 根据数值不同自动选择%f或%e.
%i 有符号十进制数(与%d相同)
%o 无符号八进制整数
o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用"%mo"格式输出。
例:
main()
{
int a = -1;
printf("%d, %o", a, a);//将a转换成无符号的八进制数输出,-1在内存空间为补码ffffffff(32个1),转换成无符号的8进制37777777777;
}
%p 指针
%s 字符串
%u 无符号十进制整数
%x 使用十六进制数字0f的无符号十六进制整数
%X 使用十六进制数字0f的无符号十六进制整数
%% 打印一个百分号