stringstream erreurs de c++

Je suis en train d'essayer de comprendre comment stringstream travaux afin d'être en mesure d'identifier et de convertir des nombres possibles qui ont été saisis comme des chaînes de caractères... pour quelque raison que ce petit morceau de code que j'ai écrit pour essayer de comprendre stringstream est ennuyeux, avec quelques erreurs...

#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;
}

Erreurs:

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'

ce que je fais mal?

Pas la raison derrière les messages d'erreur, mais une chose que vous faites mal, c'est à l'aide de stringstream, quand vous devriez être en utilisant istringstream. (L'utilisation de fail est également pas très idiomatique.)

OriginalL'auteur Gal Appelbaum | 2012-03-22