getchar只能“吃”一个字符,而getline可以“吃”一行字符

代码如下:

#include <iostream>
#include <cstring>
using namespace std;int main()
{char c;cin>>c;string line;getline(cin,line);cout<<c<<endl;cout<<line<<endl;return 0;
}

在这里,我输入a,然后按回车,直接就输出结果了。
因为getline把我的回车吃了

#include <iostream>
#include <cstring>
using namespace std;int main()
{char c;cin>>c;string line;getchar();getline(cin,line);cout<<c<<endl;cout<<line<<endl;return 0;
}

在这里,我输入a,然后按回车,还要继续输入,是因为getchar把回车吃了,所以getline才可以接收asd


可是,当我在输入a时,后面再加几个空格,然后再按回车,会发生什么呢?

可以发现,getchar只能吃一个字符,所以当我们输入一个值后,如果后面有几个空格,然后再按回车,getchar就无法解决吃回车的问题了,它把第一个空格吃了,剩下的空格加回车就被getline吃了,所以遇到这种情况,我们再用一次getline来吃就好了!!!

代码如下:

#include <iostream>
#include <cstring>
using namespace std;int main()
{char c;cin>>c;string line;getline(cin,line);getline(cin,line);cout<<c<<endl;cout<<line<<endl;return 0;
}

C++关于getline()和getchar()的小点相关推荐

  1. cin.get(),cin.getline(),getline(),gets(),getchar()

    1.cin.get() (1).cin.get()-------提取单个字符,可以提取回车.空格 a=cin.get(); (2) 同(1)---------------提取单个字符,可以提取回车.空 ...

  2. 算法题目中常见的几种输入小点-gets,cin,scanf,getline,sstream

    cin,scanf遇到空格都会停下来. gets可读入空格 例如: 在这里由于要读入空格,我们用gets来读入. const int N = 8; char g[N][N];while(gets(g[ ...

  3. [蓝桥杯]错误票据---stringstream应用举例

    题目描述 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是连续的,但ID的开始数码是随机选定的. 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成 ...

  4. ccf-csp 2016-2018部分题目总结

    目 录 2016-04 折点计数 俄罗斯方块 路径解析 游戏 网络连接 2016-09 最大波动 火车购票 炉石传说 交通规划 祭坛 2016-12 中间数 工资计算 权限查询 压缩编码 2017-0 ...

  5. C++字符串的几种输入方法(string和字符数组)

    ps:本文大部分内容参考于这篇博客,在这里加入了自己对这些函数在字符数组和string变量的理解和总结. C++中的输入大致有6种方法:cin,cin.get(),cin.getline(),gets ...

  6. 第一次CCF计算机软件能力认证

    感受: 又是收获满满(啥也不会 )的一套题呢 _(xз」∠)_ 感觉自己的效率不高,没能按照目标做到一天一套题目加解析. 主要是因为刷题太少导致对常用函数不熟悉.经典思路没见过,所以做题慢,希望后面能 ...

  7. Linux 系统函数

    Linux 系统函数 可以使用 man 2 函数名 查看 系统函数 也可以在 文件内 使用 2+ shift +k 进入指定函数 (前提是光标停在指定函数上) open 函数 int open(con ...

  8. 总结C++所有的输入输出方法(包含文件流)

    输入输出流 输入 1. cin.get() 2. cin.getline() 3. getchar() 4. gets() c11以上版本已弃用,请使用gets_s() 5. getline() 6. ...

  9. C++输入函数的应用

    最近因为找工作的事情,在刷一些编程题,也陆陆续续参加了一些笔试,一般编程中使用的语言是C++,因为编程题会有时间的限制,C++的效率最高,不容易出现超时的问题所以使用最多的语言就是C++. 在编程中, ...

最新文章

  1. 尤雨溪携手字节前端专家,畅聊 Vue 3.0 前端技术新趋势
  2. 【好文推荐】springmvc教程下载
  3. ubuntu系统靠谱的清理内存的方法(can not allocate memory 问题)
  4. 普通平键的主要尺寸有_艾创米:解密指纹锁锁体尺寸测量方法
  5. SHA256 的C语言实现
  6. 科普web前端开发如何学习,图文全面解析
  7. api k8s restful 创建pods_Kind:一个容器创建K8S开发集群
  8. unity linux桌面环境,现在仍然可以在Ubuntu 20.04上安装Unity桌面环境
  9. matlab线性拟合
  10. Android USB 开发
  11. 「网络安全」安全设备篇(7)——抗DDOS产品
  12. 10年测试,告诉你常见的软件测试类型有哪些?
  13. LibreOJ10155 数字变换 ------ 树形dp
  14. oracle时间查询语句
  15. git push错误failed to push some refs to的解决
  16. Matlab之绘制箭头图或速度图
  17. 酷狗android平板,安卓平板车载共享 体验酷狗音乐HD版
  18. 新鲜出炉!最新CKA备考指南!!
  19. IOS开发资料地址大全
  20. 西安市高新区将建智慧程度最高的城市地下综合管廊项目

热门文章

  1. 【ArcGIS Engine二次开发】入门基础(1):ArcGIS Engine简介及开发环境搭建
  2. ArcGIS,Envi软件中的卷帘工具使用及对比
  3. Android之提示Method return type must not include a type variable or wildcard:
  4. Android之Unexpected error while executing: am start -n “***.Activity“-a android.intent.action.MAIN
  5. Struts2的Interceptor和Listener以及Plugin
  6. python 写游戏好简单啊,我用键盘可以随意控制角色了【python 游戏实战 04】
  7. 厉害了!这几位小学生竟然在艺术界掀起一阵风暴,简直是灵魂画手无疑.........
  8. 物理学家史蒂夫·霍金逝世,享年76岁(附图文回顾他的一生)
  9. oracle 加密怎么解密,oracle加密encrypt,解密decrypt,
  10. bootstrap的表单验证 vue_第45天:Web表单