格式控制中,每个格式说明都必须用”%”开头,以一个格式字符作为结束,在此之间可以根据需要插入”宽度说明”、左对齐符号”-”、前导零符号”0”等。
1.格式字符
%后允许使用的格式字符和它们的功能如表3.1所示。在某些系统中,可能不允许使用大写字母的格式字符,因此为了使程序具有通用性,在写程序时应尽量不用大写字母的格式字符。
环球网校考试站 2.长度修饰符
在%和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。对于长整型数(10ng)应该加1,即%ld;对于短整型数(short)可以加h,即%hd。
3.输出数据所占的宽度说明
4.输出数据左对齐
由于输出数据都隐含右对齐,如果想左对齐,可以在格式控制中的“%”和宽度之间加一个“-”号来实现。
5.使输出数据总带+号或-号
(1)printf的输出格式为自由格式,是否在两个数之间留逗号、空格或回车,完全取决于格式控制,如果不注意,很容易造成数字连在一起,使得输出结果没有意义。例如:若k=1234,f=123.456,则printf("%d%d%f\n",k,k,f);语句的输出结果是:12341234123.456,无法分辨其中的数字含义。而如果改为printf("%d%d%f\n",k,k,f);其输出结果是:l234 1234123.456,看起来就一目了然了。
(2)格式控制中必须含有与输出项一一对应的输出格式说明,类型必须匹配。若格式说明与输出项的类型不一一对应匹配,则不能正确输出,而且编译时不会报错。若格式说明个数少于输出项个数,则多余的输出项不予输出;若格式说明个数多于输出项个数,则将输出一些毫无意义的数字乱码。
(3)在格式控制中,除了前面要求的输出格式,还可以包含任意的合法字符(包括汉字和转义符),这些字符输出时将“原样照印”。此外,还可以利用、n(回车)、\r(回行但不回车)、\t(制表)、\a(响铃)等控制输出格式。
(4)如果要输出%符号,可以在格式控制中用%%表示,将输出一个%符号。
(5)printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。
(6)尽量不要在输出语句中改变输出变量的值,因为可能会造成输出结果的不确定性。
(7)输出数据时的域宽可以改变。