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 ;
}

欢迎评论!

最新文章

  1. ASP.NET的六大内置对象
  2. &quot;递归&quot;实现&quot;约瑟夫环&quot;,&quot;汉诺塔&quot;
  3. Spring框架学习(二)
  4. java对话框形式实现加减乘除
  5. Begin using git (Part1) - Git的安装与配置
  6. 日交易41.9亿,B2B的魅力为何不输于B2C、C2C?
  7. linux JDK或JRE安装或配置
  8. 关于解决Git项目本地修改代码之后执行pull操作之后报错的问题
  9. 说一说关于破解支付宝AR红包的事
  10. mysql练习----Self join
  11. 【转】cookie如何共享到各个浏览器
  12. IntelliJ IDEA通过Tomcat启动项目过程分析
  13. Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境
  14. Linux磁盘空间分析及清理(df、du、rm)
  15. JDK源码分析(5)Vector
  16. 初识waindows窗体程序错题整理
  17. 主流磁盘接口比较(SATA/SCSI/SAS/FC)[转]
  18. sudo 其他用户执行命令
  19. mutex锁住共用线程函数 造成了死锁 ,为什么?
  20. 多目标跟踪baseline methods

热门文章

  1. mongodb添加登陆验证
  2. 关于tr:hover变色的问题
  3. C++的字符串分割函数
  4. listview cacheColorHint,listSelector属性
  5. 【windows c】 遍历目录
  6. dubbo学习总结三 消费端
  7. Excel使用SUMIF函数注意事项
  8. 监控DAG状态
  9. Windows下Redis集群配置
  10. python 爬虫网络图片中遇到的问题总结