当前位置: 首页 > news >正文

使用getline读取一整行——与cin的区别

如果我们用标准库中的iostream将标准输入的内容(cin)读取到s中。在执行读取操作时,string对象会自动忽略开头的空白(即空格符、换行符、制表符等)并从第一个真正的字符开始读起,直到遇见下一处空白为止。

*注意不要与初始化(直接初始化和拷贝初始化)混淆*

如果我们希望能在最终读入的字符串中保留输入时的空白符,这时应该用getline函数代替原来的>>运算符。getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读入内容,直到遇到换行符为止(注意换行符已被读进来了),然后把所读的内容存入到那个string对象中去(注意不存换行符)。如果输入一开始就是换行符,那么所得的结果是个空string。

和输入运算符一样,getline 也会返回它的流参数。因此既然输入运算符能作为判断的条件,也能用getline的结果作为条件。

#include<iostream> #include<string> using std::cout; using std::endl; using std::string; int main() { string line; //每次读入一整行,直至到文件末尾 while(getline(cin,line)) cout<<line<<endl; //使用endl结束当前行并刷新显示缓冲区 return 0; }

触发geline函数返回的那个换行符实际上被丢弃掉了,得到的string对象中并不包含该换行符。

http://www.jsqmd.com/news/1218048/

相关文章:

  • C++指针与引用深度解析:从内存模型到实战应用
  • java运算符和变量,scanner
  • C++通过ODBC连接MySQL:从原理到实战的完整指南
  • Allegro PCB 设计实战:T型拓扑结构创建与等长规则设置详解
  • 海口企业宣传片拍摄公司排名(2026):会议活动拍摄|直播服务推荐榜 - 政企影像扫地僧
  • 深入解析TI IVA2.2 TPCC:DMA通道控制器架构、配置与实战
  • Claude Code Agent四种运行方式详解:从单次查询到自主循环
  • Cordova框架:Web应用快速封装为原生App的完整指南
  • 嵌入式系统固件程序设计实验指南
  • OpenCode开源AI编程助手:从安装配置到实战应用全解析
  • C++面向对象编程入门:从类定义到封装与构造函数的实践指南
  • ARM GIC中断路由机制与GICD_IROUTER寄存器配置详解
  • Android消息机制:Message与Handler深度解析
  • vJoy虚拟摇杆:如何用软件方案替代硬件控制器?
  • Behaviac行为树框架终极指南:从核心原理到游戏AI中台实践
  • 2026 哈尔滨企业宣传片制作公司排名:政企影像服务商|活动拍摄公司综合排行 - 政企影像扫地僧
  • Claude写作效果断层式提升的关键24小时:从Prompt调试→输出迭代→人工协同→效果归因的闭环实操日志
  • C++开源界面库选型指南与性能优化实践
  • 长文本embedding漂移问题正在 silently 毁掉你的AI应用——2024Q2最新基准测试揭示的4类灾难性偏移及实时纠偏SDK
  • Go调用C++实战:SWIG跨语言集成指南与性能优化
  • WinCE系统自动启动机制与三种实现方案详解
  • WPS AI写文档效率翻倍:实测7类高频场景,92%用户忽略的5个隐藏技巧
  • PDF扫描效果实战指南:3步将电子文档变身为专业扫描件
  • Cordova框架:Web应用快速封装原生App的实战指南
  • ACE_Message_Block解析:高效网络编程与零拷贝技术
  • zlibrary电子书下载资源分享不限数量不限网络
  • 在线汇率兑换源码/美元兑换人民币源码/帝国CMS7.5/自动更新
  • 2026年最新教程:微信收到的视频怎么转文字 亲测有效方法 - 玩机日常
  • 2026年远程实习必备:即时通讯工具Telegram选型实录
  • vscode创建vue脚手架时出现无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次