Ignorar los valores de stringstream (como% * f en sscanf)
-
27-09-2019 - |
Pregunta
Estoy tratando de deshacerse de las viejas funciones de C inseguras, incluyendo sscanf (). En este momento estoy usando
#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;
Sólo necesito los números enteros de eso. ¿Hay alguna manera de evitar esas variables ficticias desagradable?
Gracias de antemano y tener un buen día!
Solución
sstr.ignore(128,' ');
Ignorar hasta el próximo espacio, o hasta que se leyeron los 128 caracteres.
Otros consejos
Puede llegar a funcionar con una única variable ficticia (según el tipo):
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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow