------- Java培训、Android培训、iOS培训、.Net培训 、期待与您交流 --------
一. printf函数:是C语言的标准的输出库函数,使用时尽量包含一个“stdio.h”的头文件。
1)printf函数的书写格式:("格式控制符",变量列表);
其中变量列表可以省略例如:
printf("hello world!");
2)格式控制符
a. %d 输出一个10进制整数
b. %f 输出float类型的,默认的输出6位,不足补0,精度小数点后6位,有效数字7位。double精度小数点后6位,有效数字15位。%.2f就是打印2位有效数字。%m.n 中的m为正数的话就从左开始补空格,为负,从右开始补空格,m表示当前共输出多少列,n表示小数点后的位数。
c. %c 输出一个字符
d. %s 输出一个字符串
e. %o 把一个数以8进制的形式输出
f. %x把一个数以16进制的形式输出
g. %p 输出地址
3)printf的注意事项
a.域宽问题%md
如果要输出数的实际位数>域宽m按照实际位数输出如:printf("%3d",1888);
如果要输出数的位数<域宽m,如果m>0从左侧开始补空格,反之右侧开始补0。
b.printf函数不可以自动换行
二. scanf函数
1)scanf(阻塞式函数:等待用户输入,若不输入,就停止不动,直到输入内容后按回车键等,继续执行):用于接收键盘输入的内容,保存到指定的变量中。使用时包含在"stdio.h"头文件中。
2)格式:scanf("格式控制符",输入项地址列表);两项一项都不能省略。其中格式控制符不可以写成%m.nf,例如:%4.2f.但是%mf是可以的。例如:%3f。
3)格式控制符
a.%d 输入一个十进制
b.%o 八进制
c.%x 十六进制
d. %i 有符号的十进制,八进制,十六进制
e. %u 无符号的十进制数
f. %f,e,g,G 小数形式或指数形式的浮点数
g.%c 一个字符
i. %s 一个字符串
4)步骤
a.定义变量
int age=-1;//定义变量并且初始化
b.给一个提示,让用户输入内容
printf("请输入年龄:\n");//给一个提示
c.接收用户输入的内容
scanf("%d\n",&age);
//打印用户输入的年龄
printf("%d",age);
5)scanf函数注意事项
a.scanf函数当遇到回车的时候,会结束执行。
b.接收单个变量值的时候,在输入值之前,如果我们输入空格,回车,tab都会被忽略。
c.%d%d,要求我们在输入的时候,输入两个整数,并且以空格或者回车隔开,输入完第一个数以后,如果自己添加了回车空格 tab都会被忽略。
d.为了防止混合输入,每个格式控制符之间可以加逗号。
e.关于*的使用:%*d是跳过一个整数,也可忽略一个字符。
f.scanf函数尽量不要使用\n,要是用了,随便输入一个内容或者原样写在控制台上,再或者再写一个scanf接收多余的字符。
6)scanf函数的运行原理
a.当用户输入内容后,用户输入的内容会被存放到scanf得输入缓冲区中,然后scanf函数会根据格式控制符的要求,从缓冲区中依次取它想要的内容。如果缓冲区中取得的内容和我们的格式要求一致,则把值存放到变量中,若格式不一致,则不修改变量的值。
b.scanf缓冲区中还有内容,则scanf不会在提示我们再输入。