李晨晨的嵌入式学习 DAY4

今天主要学习了格式的输入与输出函数

单字符的输入与输出

一,getchar函数:

getchar 是输入一个字符

二,putchar函数

putchar 将一个字符输出

...........................................................................................................................................................

格式输入与输出

一,printf函数

1.你咋写我咋输出。

2.“%d”,占位符,形式由printf函数下一个数决定。

3.出现两个占位符, 占位符个数应与参数一致。

二,占位符代表的含义

1.%d,%n : 输出有符号十进制;

2.% o , u , x, X:输出无符号8进制,无符号16进制;

3.%e, E:输出以科学计数法表示的浮点型。

4.%m, n, f, :整体占m 格(包含小数点),取n位有效数字。(若m小于实际数值则忽略m且m可省)。

5.%g, G :用浮点型或科学计数法型短的一个输出。

6.%s:输出 const char* 字符串。

7.%p : 输出void*(万能指针)任何数的地址,专打地址。

8.%% :打百分号,eg:99%。

9.%ld : 输出8字节的数。

三,scanf函数

以上代表十进制有符号输入,取“ i ” 的地址。(指针传参)

注意:

1.scanf函数中取的是变量地址,而非变量名。

2.在输入字符时每个字符都应该与输入的字符相同。

3.scanf函数不知道是几字节,要区分单双精度。(“%lf”)("%f")且不可互换。

4.对于浮点型输入不得使用精度控制。

5.遇到非法输入会自动结束。

...........................................................................................................................................................

缓冲区:

scanf和getchar在读取数据时是从缓冲区内读取数据,而缓冲区位于键盘和scanf、getchar之间,在我们通过键盘输入abcdef密码并敲下回车键时,数据被送到了缓冲区,这时scanf读取字符串abcdef,所以此时只剩下 \n 在缓冲区内,所以getchar就会读取缓冲区内的 \n 

为了避免这种情况,我们需要在scanf获取完abcdef后缓冲区内为空,所以这个时候需要做的就是清空缓冲区,这时我们可以在scanf读取完abcdef后立刻调用getchar函数将 ' \n '读走。所以这里我们需要通过循环来清空缓冲区。

...........................................................................................................................................................今天学习到此结束,明天见。

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值