c语言 printf()与scanf()

时间:2022-09-05 22:01:12

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()跳过空白字符(空格,换行符和跳格符),但在读入字符时,不会跳过空白字符.