print函数和scanf函数重点

------<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不会提示我们再次输入

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值