printf()
用于显示格式化的输出.scanf()
用于读取格式化输入.这些函数都在标准库中.可以向他们传递能被看做是控制串和其他参数的参数列表.控制串是一个包含一些转换说明的串或者格式.转换说明用%
开始,并且用一个转换字符结束.例如,在%d
中,字母d是一个转换字符.
转换字符 | 描述 |
---|---|
c | 字符 |
d | 十进制数字 |
e | 科学计数法浮点数 |
f | 浮点数 |
g | e格式或者f格式,取较短的一个 |
s | 字符串 |
在显示一个参数时,所显示的参数位置被称为参数的域(field),域中字符的个数被称为域宽(field width).格式中域款能被表示为出现在%和转换字符间的整数. printf("%c%3c%7c",'A','B','C')
首先显示A,然后以三个字符显示B,但B只有1个位置,所以其余的2个位置都是空格.
对于浮点值,能控制它的精度和宽度.精度是显示在小数点右边的十进制数字的个数.在形式为%m.nf
的格式中,m指定了域的宽度,n指定了精度.用形式为%mf
的格式,仅指定了域的宽度.用形式为%.nf
的格式,只指定了精度.
scanf()第一个参数是一个都带有格式的控制串,该格式和输入流中解释字符的各种方式相符号.第二个参数是地址(address). scanf("%d",&x)
中格式%d
使得在键盘上输入的字符被解释为十进制整数,并把此十进制整数值存储在x中.
在用键盘吧值输入到程序中时,一个字符序列被程序接受.我们称这个序列为输入流(input stream)
转换字符 | 描述 |
---|---|
c | 字符 |
d | 十进制整数 |
f | 浮点数(float) |
lf | 双精度浮点数(double) |
Lf | 长浮点(long double) |
s | 字符串 |
在读入数字时,scanf()跳过空白字符(空格,换行符和跳格符),但在读入字符时,不会跳过空白字符.