c语言中putchar与getchar函数的小理解

一介绍:

getchar从键盘中获得一个字符。putchar是把字符打印出来。

为什么geitchar用int来接收的原因:

                                                        getchar这个函数返回的是读到的字符,返回的字都是ascii值,所以用int接收。如果在读的过程中遇到一个读取错误,就会返回一个EOF,而EOF是-1。 -1是一个整数,所以需要用int接收,如果用char,char只有一个字节,放不下这个-1。

为什么里面的字符会自动换行,原因:

输入时在这个缓冲区里面输入了a和/n,geichar就会从缓冲区里面拿到a以及换行。

二一些注意事项:

错误的原因:在输入密码时,还输入了个回车,也就是\0,那么就说明在缓冲区有abcdef以及\0两个字符,密码交给了password,而\0还在里面,getchar就取出来赋给ret,ret不是Y,就直接输出了no。

改进方法:(但只是临时凑合,不太正确)

因为你打多个字符又会失效:

原因:在输入密码时,还输入了个回车,也就是\0,那么就说明在缓冲区有abcdef,空格,defghi和\0四个字符,密码交给了password,而空格,defghi和\0还在里面,getchar就取出来赋给ret,ret不是Y,就直接输出了no。

真正的改进:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值