c++string标准输入和getline()整行读入
2024-10-15 05:43:49
1、使用标准IO操作读写string对象
我们都知道,使用标准iostream操作来读写int ,double等内置类型的值,同样,我们也可以使用IO操作来读写string对象。
c++ code:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
cin >> s;//从输入流中读取字符序列到对象s
cout << s << endl;//输出对象s
system("pause");
return ;
}
这段程序首先定义了一个空的string对象,然后将标准输入找中的内容读取到对象s中,具体实现:在执行读取操作的时候,string对象会自动忽略开头的空白(如空格符、换行符、制表符等),并从第一个真正的字符开始读入,知道遇到下一个空白字符为止。因此,使用cin>>只能从标准输入中读取单个词。
如上所述,如果输入的是" hello word! "(注意开头和结尾以及中间是空格),则输出的是hello。
2、使用getline()读取一行
有时候我们希望在最终的字符串中保留输入时的空白符,这时候应该用getline函数来替代原来的>>运算符。getline函数的参数是一个输入流和一个string对象,原型是:getline(cin,string对象),函数从给定的输入流中读入内容,直到遇到换行符为止,但是此时的换行符要被读入,然后把所读入的内容存到string对象中,但此时不存入最后那个换行符。getline只要遇到换行符就停止读入并且返回string对象,哪怕一开始输入就是换行符也是如此,只不过会返回一个空的string对象。和输入运算符一样,getline也会返回它的流参数,所以可以用getline的结果作为条件。
c++ code:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string line;//每次读入一整行,知道遇到换行符结束读入
while (getline(cin,line))
if (!line.empty())
cout << line << endl;
system("pause");
return ;
}
欢迎评论!
最新文章
- ASP.NET的六大内置对象
- ";递归";实现";约瑟夫环";,";汉诺塔";
- Spring框架学习(二)
- java对话框形式实现加减乘除
- Begin using git (Part1) - Git的安装与配置
- 日交易41.9亿,B2B的魅力为何不输于B2C、C2C?
- linux JDK或JRE安装或配置
- 关于解决Git项目本地修改代码之后执行pull操作之后报错的问题
- 说一说关于破解支付宝AR红包的事
- mysql练习----Self join
- 【转】cookie如何共享到各个浏览器
- IntelliJ IDEA通过Tomcat启动项目过程分析
- Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境
- Linux磁盘空间分析及清理(df、du、rm)
- JDK源码分析(5)Vector
- 初识waindows窗体程序错题整理
- 主流磁盘接口比较(SATA/SCSI/SAS/FC)[转]
- sudo 其他用户执行命令
- mutex锁住共用线程函数 造成了死锁 ,为什么?
- 多目标跟踪baseline methods