方便以后复习所用
格式化输出printf函数
1.printf可以输出变量,表达式的值,还可以直接输出所写字符。
2.不同的数据类型需要使用不同的格式转换符。
3.格式控制符的格式
例%+06.2d 表明该数进行右对齐,空位补零,总长度为6位,精度为2位
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面对组成格式说明的各项加以说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
格式字符
格式字符用以指定输出项的数据类型和输出格式。
①d格式:用来输出十进制整数。有以下几种用法:
%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
%ld:输出长整型数据。
格式化scanf函数
1.&符号为取地址符号,将输入的数据存储到变量所在的地址内存。
2.&只能作用于变量,不能作用于表达式。
3.scanf函数没有精度控制如scanf(“%5.2f”,&a);是非法的。不能企图使用此语句输入
4.如果格式控制串中有非格式字符,则输入时也要输入该非格式字符。例如scanf(“%c,%c,%c”,&a,&b,&c);,其中用非格式字符 “,”作为间隔符,故输入时应为5,6,7
printf函数和scanf函数格式相同的一部分
%d 用来输入和输出int
%ld 用来输入和输出long int
%lld 用来输入和输出long long int
%hd 用来输入和输出short
%i 用来输入和输出有符号十进制整数
%u 用来输入和输出无符号十进制整数
%lu 用来输入和输出无符号十进制长整数
%llu 用来输入和输出无符号十进制长长整数
%hu 用来输入和输出无符号短十进制整数
%o 用来输入和输出八进制整数
%lo 用来输入和输出长八进制整数
%ho 用来输入和输出短八进制整数
%#o 用来输出八进制整数,数字前有0
%x 用来输入和输出十六制整数,字母小写
%#x 用来输出十六制整数,字母小写,数字前有0x
%lx 用来输入和输出长十六制整数,字母小写
%X 用来输入和输出十六制整数,字母大写
%#X 用来输出十六制整数,字母大写 ,数字前有0X
%lX 用来输入和输出长十六制整数,字母大写
%c 用来输入和输出单个字符
%s 用来输入和输出一串字符串
输入时遇空格,制表符或换行符结束
%f 用来输入和输出float,输出double
%lf 用来输入和输出double(double输出用%f和%lf都可以)
%Lf 用来输入和输出long double
%e 用来输入和输出指数,字母小写
%le 用来输入和输出长指数,字母小写
%E 用来输入和输出指数,字母大写
%lE 用来输入和输出长指数,字母大写
%g 用来输入和输出指数或float(输出最短的一种),字母小写
%lg 用来输入和输出长指数或double(输出最短的一种),字母小写
%G 用来输入和输出指数或float(输出最短的一种),字母大写
%lG 用来输入和输出长指数或double(输出最短的一种),字母大写
scanf特有格式
%*(所有类型),如%*d
用来输入一个数,字符或字符串而不赋值(跳过无关输入)
如scanf("%d%*c%d",&a,&b);
这样就可以只将1+2中的1和2赋值给a和b。
%m(所有类型),其中m为常数
限定输入范围,如scanf(“%4d”,&a)时输入123456,只把1234赋值给a
printf特有
详细见本文printf格式控制的完整格式。