C ++:字符串流的部分副本

问题描述 投票:0回答:1

如何将以str1的第二个字符开头的三个字符复制到str2?此代码无效:

#include <iostream>
#include <sstream>
#include <iterator>
#include <algorithm>

int main()
{
  std::stringstream str1("0123456789");
  std::stringstream str2;

  str1.seekg(1, str1.beg);

  std::copy(std::istream_iterator<char>(str1), std::istream_iterator<char>(str1)+3, std::ostream_iterator<char>(str2));
  std::cout << str2.str() << '\n';
}

预期输出是:

123

这是一个虚拟测试,但我想使用更大的stringstreams和高效的方法。

c++ c++11 stream stringstream
1个回答
0
投票

使用字符串的substr()。要将它用于std::stringstream,请使用str1.str()然后将其分配给str :: string str2

© www.soinside.com 2019 - 2024. All rights reserved.