stringstream errors c ++

Gal*_*aum 11 c++

我试图理解如何stringstream工作,以便能够识别和转换作为字符串输入的可能数字......由于某种原因,我写的这段小代码尝试和理解stringstream是令人烦恼的一些错误...

#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;
}
Run Code Online (Sandbox Code Playgroud)

错误:

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'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

MD *_*med 29

您需要包含以下头文件 -

#include <sstream>
Run Code Online (Sandbox Code Playgroud)

每当您看到错误时undefined class,您应该始终首先查找缺少的头文件.

是该stringstream课程的文档.