我想了解stringstream
作品爲了如何能夠識別並轉換是被輸入的字符串作爲可能的數字...由於某種原因,這一小段代碼,我寫了嘗試和了解stringstream
是被惱人的幾個錯誤...stringstream的錯誤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;
}
錯誤:
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'
我究竟做錯了什麼?
不是錯誤消息背後的原因,但有一件事你錯誤的是使用'stringstream',當你應該使用'istringstream'。 (使用'fail'也不是很習慣。) – 2012-03-22 09:33:13