最近使用C++中自己老是忘记的一个点,get与getline的区别。

1、get与getline

  get和getline所属iostream类,作用是读取一整行,通过换行符确定读取结束,他们都可以读取空格。

2、get与getline区别

  getline会在读取结束后舍弃换行符,而get回将换行符保留到输入序列中。

 char arr[];
cout<<"输入一段文字:"<<endl;
cin.getline(arr,); //使用getline
cin.get(arr,); //使用get

get与getline有两个参数,第一个参数是用来存储的数组名称,第二个参数代表着读取的字节数。

输入:asdfg 回车

get:只读取asdfg不读取回车,会导致下一个读取输入时第一个读取“回车”。

getline:getline读取asdfg回车,并将回车转换为“\0”读取,所以最终读取的是“asdfg\0”输入序列中无回车,下一个读取将会正常读取。

3、如何解决get舍弃换行符而产生的影响

  在cin.get(arr,20)使用完后插入“cin.get()”,cin.get()不接受任何参数,为get()的一个变体,意义为读取下一个字符(即使是换行符),用此代码来处理被舍弃的换行符。

即:

  cin.get(arr,20);

  cin.get();

  cin.get(arr,20);

  或者可以将两段代码合为一段:

  cin.get(arr,20).get();

  以上。

参考资料:C++ primer plus

  

关于C++中字符串输入get与getline的区别的更多相关文章

  1. 【转】C语言中字符串输入的三种方法

    在网上看到,讲的还算详细,转过来学习一下...... ======================================================================= 使 ...

  2. Java中字符串比较时==和equals的区别

    ==是比较两个字符串引用的地址是否相同,即是否指向同一个对象,而equals方法则比较字符串的内容是否相同. 例如String a = "abc"; String b = &quo ...

  3. js中字符串函数indexOf与search的区别

    IndexOf()方法是用来判断一个字符串是否存在于一个更长的字符串中.从长字符串左端到右端来搜索,如果存在该子字符串就返回它所处的位置(即索引).如果在被搜索的字符串没有找到要查找的字符串返回-1. ...

  4. java 中字符串比较equals()和equalsIgnoreCase()的区别

    1.使用equals( )方法比较两个字符串是否相等 boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比较的字符串(String)对象. 如 ...

  5. JAVA中字符串比较equals()和equalsIgnoreCase()的区别

    1.使用equals( )方法比较两个字符串是否相等(区分大小写) 2.使用equalsIgnoreCase( )方法比较两个字符串是否相等(不区分大小写) boolean equalsIgnoreC ...

  6. C/C++中字符串的输入问题

    standard C I/O 头文件:#include <stdio.h> . getchar() 原型:int getchar(void); 功能:从标准输入获取并返回下一个字符,并释放 ...

  7. C++中的字符串输入输出函数详解

    常见的输入问题: 1.直接用cin输入(当然可以使用cout直接输出): 1)string s; cin >> s; //只接收回车键和空格前面所输入的字符!!!!! 一旦输入空格,cin ...

  8. c++中获取字符cin,getchar,get,getline的区别

    http://www.imeee.cn/News/GouWu/20090801/221298.html cin.get()与getchar()函数有什么区别? 详细点..C++中几个输入函数的用法和区 ...

  9. C++ 中字符串标准输入的学习及实验

    声明:下面实验中[]里面表示要输入里面的符号,[]符号本身并未输入 1.cin>> cin使用空白(空格.制表符.回车)来确定字符串的结束位置. cin会将换行符留在输入输出队列中. #i ...

随机推荐

  1. memcached知识点梳理

    Memcached概念:    Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-valu ...

  2. BZOJ_1862_[Zjoi2006]GameZ游戏排名系统&&BZOJ_1056_[HAOI2008]排名系统_Splay

    BZOJ_1862_[Zjoi2006]GameZ游戏排名系统&&BZOJ_1056_[HAOI2008]排名系统_Splay Description 排名系统通常要应付三种请求:上传 ...

  3. CF 1042 A Benches —— 二分答案(水题)

    题目:http://codeforces.com/problemset/problem/1042/A 代码如下: #include<iostream> #include<cstdio ...

  4. java笔记线程方式1睡眠

    public class ThreadSleepDemo { public static void main(String[] args) { ThreadSleep ts1 = new Thread ...

  5. apache相关补充

    apache相关补充 sendfile机制 1)不用sendfile的传统网络传输过程: read(file, tmp_buf, len) write(socket, tmp_buf, len) 2) ...

  6. bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士【bfs】

    bfs预处理出每个点s和t的距离d1和d2(无法到达标为inf),然后在若干灌木丛格子(x,y)里取min(d1[x][y]+d2[x][y]) /* 0:贝茜可以通过的空地 1:由于各种原因而不可通 ...

  7. Linux安装MySQL标准教程

    导读: 本文主要介绍 CentOS 系统二进制安装 MySQL 5.7.23 版本的安装步骤,其他版本安装过程相似. 1.前置准备 卸载旧版MySQL 查看rpm包 rpm -qa|grep mysq ...

  8. Rabbitmq笔记一

    几个基本概念 Producer 生产者,发送消息的一方,图中左侧的client. Consumer 消费者,接收消息的一方,图中后侧的client. Broker 消息中间件的服务节点,一般一个Rab ...

  9. 《Maven实战》(许晓斌)导读(读书笔记&第二次读后感)

    第一章 Maven简介 Maven是构建工具,但同时还是jar包管理工具.项目信息管理工具 与Make.Ant比较,更为先进 第二章 Maven的安装和配置 Windows和Unix上安装都很简单,下 ...

  10. 贪心/思维题 UVA 11292 The Dragon of Loowater

    题目传送门 /* 题意:n个头,m个士兵,问能否砍掉n个头 贪心/思维题:两个数组升序排序,用最弱的士兵砍掉当前的头 */ #include <cstdio> #include <c ...