C++字符串的输入函数之get()和getline()

初学C++者,都使用cin来完成字符串的输入,但是有一个弊端就是cin只能读取一个单词,不能实现连续的输入,这里简单介绍两个可以连续输入的函数get()和getline(),在istream类中(如cin)提供了这两个面向行的类成员函数;

两个函数都是面向行的输入.

函数getline()调用方法为cin.getline();该函数有两个参数,第一个为用来存储字符串的缓冲区,第二个为要读取的字符数,如果参数为10,则函数最多读取9个字符,剩余的空间自动存储结尾空字符,getline()成员函数在读取指定数目的字符或遇到换行符(回车)时停止读取.该函数每次读取一行,他通过换行符来确定行尾,但不保存换行符,相反,在存储字符串时,用空字符替换换行符.

         示例:   cin.getine(name,10);

函数get()有几种版本,其中一种版本的工作方式与getline()类似,参数相同,解释参数的方式也相同,并且都读取到行尾,但get并不丢弃换行符,而是将其留在输入队列中,当我们两次调用get()函数

        cin.get(name , size);

        cin.get(info , size); // a problem

由于第一次调用后,换行符将留在输入队列中,因此第二次调用时看到的第一个字符便是换行符,因此get()认为已经到行尾,而导致没有读取到任何内容,这时需要借助另外一个版本来解决,即不带任何参数的get()函数,如下

        cin.get(name , size);

        cin.get();

        cin.get(user , size);

或者合体版

        cin.get(name , size).get();

        cin.get(user , size);

之所以可以合体,是由于cin.get(name , size)返回的是一个cin对象,该对象随后见被用来调用get()函数.

初次写博客,欢迎批评指正!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值