关于char类型的连续输入

这个忘了好久了

先回想吧

一 单字符

①  char m;

     scanf("%d",&m);

② char m;

  m=getchar();

  putchar(m);

二 字符数组(字符串)

①   char a[10];

    int i;

      for(i=0;i<10;i++){

  scanf("%c",&a[i]);

      }

②   char a[10];

  gets(a[10]);

  puts(a[10]);

书本上的

我今天用的连续输入char o,p,q;

char o,p,q;

scanf("%c%c%c",&o,&p,&q);

结果linux 里面没有被读出来o的量;

**********************************************************************

我知道了 要写一条scanf("%*c")清除输入缓冲区的回车键

田硕以前讲过 输入缓冲区的概念 当我输入的是 5,enter,abc(逗号起分隔作用并未在键盘输入)

scanf("%d",&m);

scanf("%c%c%c",&o,&p,&q);

是读入的 就是 5 enter a b(将enter读入了,没有读入c);

这的时候我要在第一个输入结束后清除输入缓冲区的数据scanf("%*c")

第二个scanf函数才不会读入enter,而是从a开始读入

**********************************************************************

  scanf("%*[^\n]") 把输入缓冲区中第一个换行字符前的数据全部丢弃,

  scanf("%*c")  把换行字符丢弃。

转载于:https://www.cnblogs.com/pertinencec/p/5294113.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值