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!

¿Fue útil?

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
scroll top