最近使用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. RK3288 6.0 双屏异显,横屏+竖屏【转】

    本文转载自:http://blog.csdn.net/clx44551/article/details/78215730?locationNum=8&fps=1 RK3288 6.0 双屏异显 ...

  2. uclibc,eglibc,glibc之间的区别和联系【转】

    本文转载自:https://www.crifan.com/relation_between_uclibc_glibc_eglibc/ [glibc,uclibc,eglibc的简介] 1.Glibc ...

  3. oracle基本建表语句

    oracle基本建表语句 2010-09-20 10:37:33|  分类: 数据库 |  标签:数据库  oracle  |字号 订阅 --创建用户create user han identifie ...

  4. 洛谷 P1131 [ ZJOI 2007 ] 时态同步 —— 树形DP

    题目:https://www.luogu.org/problemnew/show/P1131 记录 x 子树内同步的时间 f[x],同步所需代价 g[x]: 直接转移即可,让该儿子子树与其它儿子同步, ...

  5. 洛谷 P1970 花匠 —— DP

    题目:https://www.luogu.org/problemnew/show/P1970 普通的DP,f[i][0/1] 表示 i 处处于较小或较大的长度: 注意:1.树状数组向后 query 时 ...

  6. Tool:Adobe Photoshop

    ylbtech-Tool-Adobe:Adobe Photoshop 1.返回顶部 1. Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件. Pho ...

  7. 深入浅出Android makefile(1)--初探(转载)

    转载:http://nfer-zhuang.iteye.com/blog/1752368 一.说明 android build system是一个非常庞大的系统,要编译Android工程.修改或新增A ...

  8. bzoj 3498: PA2009 Cakes【瞎搞】

    参考:https://www.cnblogs.com/spfa/p/7495438.html 为什么邻接表会TTTTTTTLE啊...只能用vector? 把点按照点权从大到小排序,把无向边变成排名靠 ...

  9. 【题解】二逼平衡树 [P3380] [BZOJ3196] [Tyvj1730]

    [题解]二逼平衡树 [P3380] [BZOJ3196] [Tyvj1730] 传送门:[模板]二逼平衡树(树套树)\([P3380]\) \([BZOJ3196]\) \([TYVJ1730]\) ...

  10. $CF241D\ Numbers$

    problem 题目大意: 给你n个数和p,都小于50000要求留下若干个数字,使得剩下的数字异或为0,并且从左到右串联起来可以被p整除,求一种这样的方案. 搜索 #include <bits/ ...