C++ 忽略stringstream中的值(如sscanf中的%*f)

C++ 忽略stringstream中的值(如sscanf中的%*f),c++,stringstream,C++,Stringstream,我试图摆脱旧的不安全的C函数,包括sscanf()。现在我正在使用 #include <sstream> std::string str = "111 222.2 333 444.4 555"; std::stringstream sstr(str); int i, j, k; float dummy1, dummy2; sstr >> i >> dummy1 >> j >> dummy2 >> k; #包括 std:

我试图摆脱旧的不安全的C函数,包括sscanf()。现在我正在使用

#include <sstream>
std::string str = "111 222.2 333 444.4 555";
std::stringstream sstr(str);
int i, j, k;
float dummy1, dummy2;
sstr >> i >> dummy1 >> j >> dummy2 >> k;  
#包括
std::string str=“111 222.2 333 444.4 555”;
标准:stringstream sstr(str);
int i,j,k;
浮动dummy1,dummy2;
sstr>>i>>dummy1>>j>>dummy2>>k;
我只需要其中的整数。有没有办法避免这些讨厌的虚拟变量

提前谢谢,祝你有愉快的一天

sstr.ignore(128,”)


忽略,直到下一个空格,或直到读取了128个字符。

您可以使用单个虚拟对象(每种类型):


我同意-没有一个任意常数就没有办法做到这一点吗?如果您确实知道要查找分隔符,可以使用ss.ignore(std::numeric_limits::max(),':');这是可行的,但看起来很笨拙——难道没有类似于ss>>a>>ignore>>b?
std::string str("111 222.2 333 444.4 555");
std::stringstream sstr(str);
int i, j, k;
float dummy;
sstr >> i >> dummy >> j >> dummy >> k;