------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
printf函数是一个标准的库函数,因此要使用printf函数需要在前面有#include <stdio.h> 如果不包含,则会出现警告。printf函数的作用是能够以精确的格式输出程序运算的结果。(就是在屏幕上输出,显示出一定的内容呗)
printf函数的调用格式为(就是这个函数怎么样去使用呢):
printf(”格式控制字符串”,输出项列表); 如:printf(“%d,%d”,a,b);
%d输出一个十进制的整数
%f输出一个实数类型的数据(不能输出整形的数据)
默认输出6位小数,如果数据小数部分不足6位,补零
只打印两位小数—-----》%.nf
%m.nf
m表示总的的位数(列数)
n表示小数点后的位数
%c输出一个字符
%s输出一个字符串
%o把一个数,以八进制的形式输出
%x把一个数,以十六进制的形式输出
%p输出地址
%f输出的精度问题
%f打印出来后,默认float类型精度小数点后6位,有效数字是7位
%f打印出来后,默认double类型精度小数点后6位,有效数字是15位
printf函数使用注意事项
1、域宽问题
%d:按整型数据的实际长度输出
关于整数数据打印的时候域宽的问题。
%md——》m域宽,打印出来以后,在控制台,显示m位。 m这个数字可以为正,也可以为负。
如果我们要打印的数的位数超过我们设定m值,则原样输出
如果我们要打印的数的位数小于我们设定的数,则补空白,具体如下:
如果m为正数,则从左侧补空白。
如果m为负数,则从右侧补空白。
%0md使用注意
%0md 不足部分是补0
Scanf部分注意内容:
如果要使用这个函数,要包含一个头文件 stdio.h
阻塞式的函数:函数执行后,会等待用户的输入,如果用户不输入任何内容,它会一直等待。
上图中我们输入的是23,得到的结果也是23.
下面我们输入23.5,得到的结果还是23.%d只接受整数部分
对于实型的数据接受,如下图
要求输入实型数据,我们输入的字符型数据,结果出现错误
打印输出2位小数,输入的数据中后面的小数不输出
scanf函数中不允许输入,如下图
指定域宽问题
使用scanf的时候不能指定%m.n格式
分清楚%m.nf格式(m指的是有效数字,不算小数点,n是小数点后的精确数位)和域宽%md(%0md)的问题。
重点Scanf函数使用注意事项:
注意:1)如果在输入时,输入了多个空格、回车、Tab都会被系统忽略的。
2)如果要获取的内容是多个整数,中间输入了多个空格、回车、Tab都会被系统忽略
整型、实型多个参数输入的时候,中间加入空格、tab、回车都不影响输入。
混合输入的时候,如下图,结果出现错误
%*d跳过一个整数 %*c跳过一个字符。。。如下图所示
scanf运行原理:
1、当用户输入内容后,用户输入的内容会被存放到scanf的输入缓冲区中。
然后,scanf函数会根据格式控制的字符串的要求,从输入缓冲区依次去它想要的内容。
如果,从缓冲区取得的内容和我们的格式要求一致,则吧值存放到变量中。
如果,格式补一致,则不修改变量的原来的值。
2、如果scanf缓冲区中还有内容,则scanf不会提示我们再次输入