-2
你如何得到一个std::stringstream
到返回下一个标记,而不是将它解压缩成一个变量operator>>
?如何在没有操作符>>的情况下从串流返回下一个标记?
我已经包含了一些为什么我想在下面做这个的例子。我试过get()
,但这只是返回下一个字符。
#include <string>
#include <sstream>
std::string line("abc xyz");
std::stringstring ss(line);
std::string token;
ss >> token; // I don't want this
token = ss.next(); // I want something like this
if (ss.next() == "abc") // So I can do something like this
int x = std::stoi(ss.next()); // Or this
这样做的主要原因是当我不想存储或重用下一个标记时产生更清晰的代码。否则,代码将填充行ss >> token
。
'ss >> token; //我不想要这个'为什么?这有什么问题? – DimChtz
用ss.next()做的所有事情都可以用ss >> token来实现。这可能需要另一步,但从长远来看,这可能会导致更干净的代码。 –
@DimChtz我举了一些例子,说明为什么我不想在问题中使用它。 –