1、格式输出函数的一般形式
函数原型: int printf(char * format[,argument,…]);
函数功能:按规定格式向输出设备(一般为显示器)输出数据,并返回实际输出的字符数,若出错,则返回负数。
它使用的一般形式为:
printf("格式控制字符串",输出项列表);
语句中“输出项列表”列出要输出的表达式(如常量、变量、运算符表达式、函数返回值等),它可以是0个、一个或多个,每个输出项之间用逗号(,)分隔。输出的数据可以是整数、实数、字符和字符串。
"格式控制字符串"必须用英文的双引号括起来,它的作用是 控制输出项的格式和输出一些提示信息,例如
int i=97; printf("i=%d,%c\n",i,i);
输出结果为:i=97,a
语句“printf("i=%d,%c\n",i,i);”中的两个输出项都是变量i,但却以不同的格式输出,一个输出整型数97,另一个输出的却是字符a,其格式分别由“%d”与“%c”来控制。
语句“printf("i=%d,%c\n",i,i);”的格式控制字符串中“i=”是普通字符,他将照原样输出;“%d”与“%c”是格式控制符;"\n"是转义字符,它的作用是换行。
2、格式控制
格式控制由格式控制字符串实现。格式控制字符串由3部分组成:普通字符、转义字符、输出项格式说明。
(1)普通字符。普通字符在输出时,按原样输出,主要用于输出提示信息。
(2)转义字符。转义字符指明特定的操作,如"\n"表示换行,"\t"表示水平制表等。
(3)格式说明部分由“%”和“格式字符串”组成,他表示按规定的格式输出数据。
格式说明的形式为:
%[flags][width][.prec][F|N|h|I][type]
各部分说明如下:
- “[]”表示该项为可选项,即可有可无,如 printf("%d",100);
- flags为可选择的标志字符,常用的标志字符有:
- - ——左对齐输出,默认为右对齐输出;
- + ——正数输出加号(+),负数输出减号(-);
- 空格 ——正数输出空格代替加号(+),负数输出减号(-)。
- width为可选择的宽度指示符。
- 用十进制正整数表示设置输出值得最少字符个数。不足则补空格,多出则按实际输出,默认按实际输出,例如:
- printf("%8d\n",100); printf("%6d\n",100); printf("%-8d\n",100); printf("%+8\n",100);
- 输出结果为:└┘└┘└┘└┘└┘100 └┘└┘└┘100 100└┘└┘└┘└┘└┘ └┘└┘└┘└┘+100
- [.prec]为可选的精度指示符
- 用“小数点”加“十进制正整数”表示,对“整数”、“实数”和“字符串”的输出有如下功能:对“整数”,表示至少要输出的数字个数,不足补数字0,多则原样输出;对“实数”,表示小数点后至多输出的数字个数,不足则补数字0,多则做舍入处理;对“字符串”,表示最多输出的字符个数,不足补空格,多则丢弃。
- 例如:printf("%8.2f\n",3.14159); printf("%8.5f\n",3.14159);
- 输出结果为:└┘└┘└┘└┘3.14 └┘3.14159
- [F|N|h|I]为可选的输出长度修饰符,其功能如下:
- F ——输出远指针存放的地址;
- N——输出近指针存放的地址;
- h——输出短整型数据的值;
- l——输出长整型或双精度型数据的值。
- 例如:long n=40000;
- printf("%8ld\n",n);/*因为200*200是长整型数据*/
- type为可选的格式字符,用来进行格式转换。