printf:向控制台打印数据
scanf:接收键盘的输入
格式控制符(占位符):
%d:表示一个十进制整型
域宽:%md:表示该数据一共占m列。当m大于该数据所占的位数是,当m为正数时则在左边补空格,若m为负数则
在右边补空格
在右边补空格
%0md:表示不足的位用0填补
范例:
int a = 456;
printf("a= %4d",a); //输出_456 ( '_'表示空格)
printf("a= %-4d",a); //输出456_
printf("a= %2d",a); //输出456 若m小于该数据所占的位数,则原数输出
printf("a= %05d",a); //输出00456 不足5位用0填补
%f:表示一个实型(float和double都用其表示)
精度控制:%f:默认小数点后保留6位,超出的四舍五入有效数字7位,打印时只能打印实型,不能打印整型
(有效数字指float数据中最多只能表示7个数字,多于7个的数字则无法正确表示)
%.mf:小数点后面保留m位
%mf:域宽:表示这个float型数据一共占m列(包含小数点那一列)
%n.mf:表示小数点后保留m位,并且该数据一共占n列(包含小数点所在那列),若加上小数点钱的数值
不足n列则在左侧补空格,若多余n列则保留小数点前的数值
不足n列则在左侧补空格,若多余n列则保留小数点前的数值
范例:
float a = 45.4565345f;
printf("a= %f",a); //
输出45.45653
8 小数点后输出6位,但有效数字只有7位,故最后一位不能准确输出
printf("a= %.4f",a); //
输出45.4565 小数点后保留4位
printf("a= %.7f",a); //输出45.45653
685 小数点后输出7位,但有效数字只有7位,故后三位不能准确输出
printf("a= %6.2f",a); //
输出_45.46 ('_'代表空格)
%c:表示一个字符型
%s:表示一个字符串
%o:八进制
%x:十六进制
%p:地址
工作原理:当用户从键盘输入时先将输入放入内存的输入缓冲区,然后再根据格式控制符依次从输入缓冲中取出对应的值;
当输入缓冲中还有格式控制符对应的数据时,再输入该类型的数据时将不提示用户再次输入而是直接将内存缓冲
中的值赋给该变量。
当输入缓冲中还有格式控制符对应的数据时,再输入该类型的数据时将不提示用户再次输入而是直接将内存缓冲
中的值赋给该变量。
语法:int a = 0; char c = 'a';
scanf("%d%c",&a,&c);若格式控制符中出现其他的非格式控制的字符,则要原样输入该字符才能正确的赋值给变量。