cin.get和cin.getline的区别?

导读:
   最佳答案
  问题一:
  #include
  #include
  using namespace std;
  void main(void)
  {
  string st ;
  cout<<"Input st:";
  getline(cin,st);
  cout< <
  }
  上面这段代码,如果输入abc,那么需要按两次回车键才能显示abc(在VC6中),因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成 getline(cin,st,'s'); 即使输入的是abcsabc 那么也只会显示 abc ,因此对于上面出现的情况,有人说getline默认情况下以回车('/n')作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。也有人说这是VC6的bug,我觉得前一种解释比较合理,因为:
  如果你输入abc(回车)abc,那么程序会显示abc,可见回车的确是函数默认的结束符。
  同理1getline(cin,candybar[i].pinpai); 就是当输入一串字符串后赋值给candybar[i].pinpai,然后再按二次回车才显示在屏幕上!
  问题二:
  1.cin.getline是读入一行字符,比如:
  #include
  void main()
  {
  char str[20];
  cout<<"Input :";
  cin.getline(str,20);
  cout< <
  }
  当输入:abd cdrasdf g的时候就会输出:abd cdrasdf g。
  2.cin.get()第一个用法,是读入一个字符。
  #include
  void main()
  {
  char str;
  cout<<"Input :";
  str=cin.get();
  cout< <
  }
  当你输入“ABAF”的时候,只会显示“A”,因为只读入了一个字符(空格也可以读入)。
  3.cin.get()第二个用法,也是输入一行(同cin.getline()),但是区别就是,不输出分隔符~
  你的提问,应该是第三个用法
  cin.clear();//清空输入流

本文转自
http://z.baidu.com/question/30390464.html?fr=qrl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值