C++ cin.getline() , cin.get(), getline()

原创 2015年07月09日 21:27:57

cin.getline(array,size);
getline()函数读取整行,它通过回车键键入的换行符来确定输入结尾,但不保存换行符,存储时,用空字符来代替换行符。第一个参数用来存储输入行的数组的名称,第二个参数是要读取的字符数(结尾处要添加空字符)。
getline()成员函数在读取指定数目的字符或遇到换行符时停止读取。
cin.get(array,size);
get()函数将换行符留在输入队列中。
cin.get();
不带任何参数的cin.get()函数可读取下一个字符(读取一个字符),即使是换行符,因此可以用它来处理换行符。还可以用在return语句前使窗口一直开着直到你按任何键。
getline(cin,string);
将一行输入读取到string对象中

注:使用cin 或者 cin.get(array,size)读取输入后一定要使用没有参数或者接受一个参数的cin.get()来处理换行符。

下面看一个小程序:

读取行输入中换行符的处理

输出结果:正确输出

将第13和18行注释掉以后得到的错误结果:

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

cin、cin.get()、getline()(讲解的很详细)黄刚的博客

黄刚的博客:cin、cin.get()、getline()(讲解的很详细) in等函数深入分析 很多初学者都认为cin函数是一个很简单的函数,其实不然!cin函数有很多需要了解...
  • snail0428
  • snail0428
  • 2016年10月10日 21:53
  • 1332

关于cin的get()和getline()成员函数

cin是使用空白(空格,制表符,换行符)来确定字符串的结束位置这意味着cin在获取字符数组时只读取一个单词。读取该单词后cin自动在其结尾增加空字符。 这有时候很方便,有时候有使我们烦恼:如果我要输...
  • shujh_sysu
  • shujh_sysu
  • 2016年07月09日 10:45
  • 575

cin>>和getline混用需谨慎

造成程序错误结果的原因是,用户输入完年龄后按回车结束输入,把“\n”留在了输入流里,而cin不会主动删除输入流内的换行符,这样换行符就被getline读取到,getline遇到换行符返回,因此程序不会...
  • u011421608
  • u011421608
  • 2015年03月24日 14:41
  • 1836

C++ 读书笔记之 getline与cin.getline的区别

两个函数虽然看上去名称相同都是getline,但它们却分属于不同的类中的成员函数。 cin.getline(arr,20);的getline是输入流对象的成员函数,即istream::getline...
  • shihui512
  • shihui512
  • 2013年05月17日 14:06
  • 1636

各种字符读取方法的比较(cin,getline等)

读取一个字符或一个字符串的方法有很多,也有些陷阱,下面总结一下。   (1)>>操作符 >>操作符的重载,有很多种原型,能够从输入流抽取各种形式的输入(int、单个字符、字符串等),...
  • wikioi_bai
  • wikioi_bai
  • 2015年02月15日 10:37
  • 845

C++程序学习--cin.get()函数读取空行时的细节

在学习《C++ Primer Plus》第六版第17章P780页的程序时遇到一个小问题,这个问题困扰了我很久,直到我找到了一篇博文http://www.cnblogs.com/tonglinglian...
  • JiuHuangShan
  • JiuHuangShan
  • 2016年11月13日 19:17
  • 1321

个人笔记(cin.getline与cin.get)

在输入流中,getline与get是两个比较早接触的function member; 在primer plus中,介绍这两个函数时,是通过例子: // instr1.cpp -- reading ...
  • hsm159
  • hsm159
  • 2016年07月22日 13:54
  • 197

c++中字符输入函数getline、cin.getline区分

1、cin>>s; s可以是:string  s、char s[]; 这个是ostream中的函数,遇到‘ ’(空格) , '\n'(换行),就会自动结束,因此如果用cin读取字符串,那么这个字符串...
  • zengchenacmer
  • zengchenacmer
  • 2014年07月24日 10:24
  • 2896

getline读取不等待输入的问题

先cin >>,然后getline读取时会发生一闪而过不等待输入的情况,用fflush(cin)清除输入缓冲区也是如此,纠结半天终于在妹神指导下搞清楚 由于输入一个数据后按了回车键,而getline没...
  • KUAILE123
  • KUAILE123
  • 2014年04月06日 21:40
  • 1777

cin.get()与cin.getline()函数讲解1

先简单说明几个语句: char s[20];  cin.get(s,20,'m'); //最后一个参数可采用默认值'\n',用法cin.get(s,20) 此句从输入流中提取字符给s,第二个参数表示数...
  • jingmiaa
  • jingmiaa
  • 2016年02月29日 21:34
  • 410
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ cin.getline() , cin.get(), getline()
举报原因:
原因补充:

(最多只允许输入30个字)