Estoy tratando de utilizar las prácticas de seguridad en el manejo de entrada con los números sólo en C++, por lo que utilizar un objeto stringstream como tan:Problema con la reutilización de un objeto stringstream
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
int first, second;
string input;
stringstream sstream;
cout << "First integer: ";
getline(cin, input);
sstream.str(input);
sstream >> first;
cout << first << endl; //display user input in integers
cout << "Second integer: ";
getline(cin, input);
sstream.str(input);
sstream >> second;
cout << second << endl; //display user input in integers
getline(cin, input); //pause program
return 0;
}
Sin embargo, la segunda vez parece darle a la variable 'segundo' un valor arbitrario. Esta es la salida:
First integer: 1
1
Second integer: 2
2293592
Si Declaro dos objetos stringstream y los utilizan, respectivamente, para las dos variables parece que funciona bien. ¿Esto significa que no puedo volver a utilizar un objeto de cadena de caracteres de la forma en que estoy tratando de hacerlo? En mi programa real, tengo la intención de manejar mucho más que dos valores de entrada del usuario, así que solo quiero asegurarme de que haya otra forma en lugar de crear múltiples objetos de secuencia de cadenas. Dudo que sea de gran relevancia, pero estoy en Windows XP y estoy usando MinGW como mi compilador.
Agradeceré cualquier ayuda.
Justo lo que estaba buscando Por. Me encantan las respuestas rápidas en este sitio. – kaykun