获取stringstream c ++的剩余部分

Lin*_*lda 5 c++ string stringstream

我有一个stringstream,我需要将第一部分输出,然后将剩余部分放入一个单独的字符串中.例如,我有字符串"This is a car",我需要最终得到2个字符串:a = "This"b = "is a car".

当我使用stringstream来获取第一部分时<<,我使用.str()转换为字符串,这当然给了我整个事情" This is a car".我怎么能让它发挥我想要的?

Bet*_*eta 4

string str = "this is a car";

std::stringstream ss;
ss << str;

string a,b;
ss >> a;
getline(ss, b);
Run Code Online (Sandbox Code Playgroud)

编辑:感谢@Cubbi 的更正:

ss >> a >> ws;
Run Code Online (Sandbox Code Playgroud)

编辑:

该解决方案可以在某些情况下处理换行符(例如我的测试用例),但在其他情况下会失败(例如@rubenvb的示例),并且我还没有找到一种干净的方法来修复它。我认为@tacp 的解决方案更好、更稳健,应该被接受。

  • @Beta `std::ws` 消耗所有空白。 (4认同)