我试图理解如何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课程的文档.
| 归档时间: |
|
| 查看次数: |
18488 次 |
| 最近记录: |