getchar()、gets()、getch()

getchar()用法

  • getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.
    eg1:

     #include <stdio.h>
     int main(void)
     {
     int c;
     /* Note that getchar reads from stdin and
     is line buffered; this means it will
     not return until you press ENTER. */
     while ((c = getchar()) != '\n')
     printf("%c", c);
     return 0;
     }
    
  • 我们输入x-回车-y-回车
      结果会是xy吗?不是的 结果是a=x b=’\n’(回车)
      当我们开始打x的时候,x在缓冲区,当我们按下回车的时候,第一个getchar()才获取到x这个值 顺利存到a里 但回车既是确定又是字符,回车’\n’它也跟着进了缓冲区,并且和x一起被释放,x到了程序里 回车(’\n’)也到了程序里,并且被第2个 getchar()获取,此时我们输入y,这时缓冲区里有一个字符 ‘y’, 然后我们又按下回车,‘y’和’\n’又一起准备被释放,由于程序里没有第3个getchar(),所以’y’和’\n’还留在缓冲区,但它们两个已经是在准备状态中,如果程序又出现一个getchar(),‘y’不需要你按回车它会直接进入到第3个getchar(),getchar()是依次获取,按先后顺序,不会先获取’\n’,而’\n’正等待着马上进入第4个getchar()
    eg2:

       int main()
       {
       char a,b;
       a=getchar();
       b=getchar();
       putchar(a);
       putchar(b);
       }
       //a = x, b = '\n'
    
  • 可以利用getchar()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,用法:
    在主函数结尾,return 0;之前加上getchar();

gets()

  • 头文件
    stdio.h(c),cstdio(c++)
  • gets() 从标准输入设备读取字符串,以回车结束读取,使用’\0’结尾,回车符’\n’被舍弃没有遗留在缓冲区。
  • 可以用来输入带空格的字符串。
  • 可以无限读取,不会判断上限,因此使用gets不安全,可能会造成溢出

getch()

  • 所在头文件:conio.h
    函数用途:从控制台读取一个字符,但不显示在屏幕上
  • 1)windows平台下ENTER键会产生两个转义字符 \r\n,因此getch返回13(\r)。
    2)unix、 linux系统中ENTER键只产生 \n ,因此getch返回10(\n)。
    3)MAC OS中ENTER键将产生 \r ,因此getch返回13(\r)。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值