Estoy tratando de entender cómo funciona stringstream
para poder identificar y convertir los posibles números que se ingresaron como cadenas ... por alguna razón este pequeño fragmento de código que escribí para tratar de comprender stringstream
está siendo molesto con algunos errores ...stringstream errors C++
#include <iostream>
#include <string>
using namespace std;
int str2int (const string &str) {
std::stringstream ss(str);
int num;
if((ss >> num).fail())
{
num = 0;
return num;
}
return num;
}
int main(){
int test;
int t = 0;
std::string input;
while (t !=1){
std::cout << "input: ";
std::cin >> input;
test = str2int(input);
if(test == 0){
std::cout << "Not a number...";
}else
std::cout << test << "\n";
std::cin >> t;
}
return 0;
}
errores:
Error C2079:'ss' uses undefined class std::basic_stringstream<_elem,_traits,_alloc>'
Error C2228: left of '.fail' must have class/struct/union
Error C2440: 'initializing': cannot convert 'const std::string' into 'int'
¿qué estoy haciendo mal?
No es la razón detrás de los mensajes de error, pero una cosa que está haciendo mal es usar 'stringstream', cuando debería usar' istringstream'. (El uso de 'fail' tampoco es muy idiomático.) –