当前位置:   article > 正文

C++ 字符串输入输出流_c++打印输出语句

c++打印输出语句

        string流可以向string类对象写入数据,也可以向string类对象读取数据。string流对象定义在sstream头文件中,其中的istringstream从string对象读取数据,ostringstream向string对象写入数据,stringstream既可以向string对象写入数据,也可以从string对象读数据。

1)istringstream流

        当从设备(如键盘或硬盘文件)读取一行文本时,往往需要对整行文本中的单个单词进行处理,这时可以使用istringstream流对象。比如,需要获取一行文本中的所有单词,并把它存放到一个vector里,为后续的单词处理工作做准备。

  1. vector <string> wds; //保存读取的单词
  2. string line, word;
  3. /*利用getline获取一行文本,如果获取成功(getline函数返回有效的cin),则将整行文本的副本保存到
  4. istringstream对象iss中。然后通过调用输入运算符号>>逐个获取iss中的每一个单词,并把获得的单词
  5. 放到vector类型对象wds中。
  6. 需要注意的是,在读完line中的所有单词后,会触发文件结束信息,使iss变为无效状态,内层while循环
  7. 会结束。*/
  8. while(getline(cin, line)) {
  9. istringstream iss(line); //创建输入string流对象,保存line的一个副本
  10. while(iss >> word) //读取每个单词
  11. wds.push_back(word); //将读取的单词尾插到wds中
  12. }

2)ostringstream流

        当需要一次打印不同数据类型的数据时,使用ostreamstream流可以很容易实现。比如,在上面的例子中,在获取所有的单词后,一次性输出每个单词和它们的长度:

  1. ostringstring out; //创建string流对象
  2. for (auto &i : wds) //处理每一个单词
  3. out << i << ":" << i.length() << '\n'; //将数据写入输出流对象中
  4. /*对象out的成员函数str返回存储的string类型数据。注意,ostringstream的另一个版本的成员函数
  5. str接受一个string类型的参数,用来覆盖原有的数据,例如out.str('')调用后,out里面的数据将被
  6. 清空*/
  7. cout << out.str(); //打印输出

   

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/798294
推荐阅读
相关标签
  

闽ICP备14008679号