一:printf格式字符串
函数原型在头文件“stdio.h”中
1.一般形式
一般形式为: %[标志][输出最小宽度][.精度][长度]类型其中方括号[]中的项为可选项
2.类型字符
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀O)
x 以十六进制形式输出无符号整数(不输出前缀OX)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e 以指数形式输出单、双精度实数
g 以%f%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
3.标志字符
标志格式字符 标 志 意 义
- 结果左对齐,右边填空格
- 输出符号(正号或负号)
空格 输出值为正时冠以空格,为负时冠以负号
对c,s,d,u类无影响;对o类, 在输出时加前缀0;
对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
. 如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数
h 表示按短整型量输出
l 表示按长整型量输出
4.使用printf函数时注意的问题
输出表列中的求值顺序:不同的编译系统不一定相同,可以从左到右,也可从右到左。
Turbo C是按从右到左进行的。但是必须注意,求值顺序虽是自右至左,但是输出顺序还是从左至右
二:scanf格式字符串
函数原型在头文件“stdio.h”中
1.一般形式
一般形式为: %[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项
2.类型字符
d 输入十进制整数
o 输入八进制整数
x 输入十六进制整数
u 输入无符号十进制整数
f或e 输入实型数(用小数形式或指数形式)
c 输入单个字符
s 输入字符串
3.标志字符
-
表示该输入项读入后不赋予相应的变量,即跳过该输入值 【如:scanf("%d %*d %d",&a,&b);当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b】
% 宽度,如果时小数包含小数点
【比如你的scanf语句吸收格式字段是%4f,但是你输入了3.1415926那么,它只会吸收3.14,
作为浮点类型。后面的15926以整型的方式存在于缓存中。】
h 表示输入短整型数据
l 表示输入长整型数据(如%ld) 和单精度浮点数(如%lf)