五、数据的格式化输出
-
格式输出函数:printf()
(1) 函数格式1:printf("字符串常量"); 例如:printf("helloWorld"); 功能:将字符串内容按照原样式输出 (2) 函数格式2:printf("格式控制",输出项列表); 例如:int a = 8; printf("%d",a); printf("%d %d\n",a,b); printf("a=%d b=%d",a,b); 功能:按照"格式控制"指定的格式输出对应的数据
-
printf函数格式说明
格式字符 说明 %d 有符号十进制整数数据的实际长度输出(正数不输出符号) %o 以八进制无符号形式输出整数(不输出前导符0) %x 或是 %X 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的
a~f时以小写形式输出,用X时,则以大写字母输出%u 无符号十进制整数 %c 输出一个字符 %s 输出字符串 %f 浮点数(包括float和doulbe),以小数形式输出 %e或是%E 以指数形式输出单、双精度数,数字部分的小数位数为6位 %g或是%G 浮点数不显无意义的零"0",它根据数值的大小,自动选f格式或e格式
(选择输出时占宽度较小的一种)注意:表格中常用的几个格式化符号为:d、c、s、f 例如:int a = 30; printf("%d",a); double score = 3.8; printf("%d",score); char ch = 'x'; printf("%c",ch);
-
格式字符具体讲解
(1) d格式符:用来输出一个有符号的十进制整数 a. 例如:int a = 8; printf("%d",a); printf("%d %d\n",a,b); b. 可以在格式声明中指定输出数据的域宽(所占的列数):"%5d",指定输出数据占5列 例如:printf("%5d\n %5d\n",12,-345); 12 (12前面有3个空格) -345(-345前面有1个空格) c. "%ld" :输出 long长整型数据 (2) c格式符:用来输出一个字符 a. 例如:char ch = 'a'; printf("%c",ch); b. 也可以指定域宽: printf("%5c",ch); a (前面有5个空格) (3) s格式符:用来输出一个字符串 printf("%s","China"); China (4) f格式符:用来输出实数(包括单、双精度),以小数形式输出 a. 基本形式: "%f" ,实数中的整数部分全部输出,小数部分输出6位 double a = 1.0; printf("%f\n",a/3); 0.333333 b. 指定数据宽度和小数位数,用 "%m.nf",输出域宽(输出时占的总位数)m和精度(小数位)n i. “%7.2”格式指定了输出数据占7列,其中包括小数2位,对最后一位采取四舍五入方式处理 ii.若指定的域宽小于数据的实际位数,则按实际位数输出 iii. 默认是右对齐,左补孔,可以加前导0,则会左补0;加-,表示左对齐右补空 iv. 例如: float x=1234.5678f; printf("%.2f#\n",x);//保留两位小数输出,以字符#结束 --1234.57# printf("%3.2f#",x);//指定域宽小于实际位数,按照实际位数输出,并保留两位小数 --1234.57# printf("%12.2f#",x);//域宽为12位,小数2位,右对齐,左补空 -- 1234.57# // 共计12位,补空5位, printf("%012.2f#",x);//域宽为12位,小数2位,右对齐,左补0 --000001234.57# printf("%-12.2f#",x);//域宽为12位,小数2位,左对齐,右补空 --1234.57 # (5) e格式符:用来以指数形式输出实数 a. 不指定,默认为小数位数为6位,指数部分占5列(e+001,e-1列,指数符号+占2列,指数001-3列) printf("%e",123.456); --1.234560e+002 b. 也可以使用 "%m.ne"形式格式化输出 printf("%13.2e",123.456); -- 1.23e+002 (前面4个空格) c. 格式符 e也可以写成 E,结果也是大写 printf("%13.2E",123.456); -- 1.23E+002 (前面4个空格)