首先介绍3个使用广泛的string->int方法,及被支持的开发平台
// stringstream gcc + vc +
#include <sstream>
string str("123");
std::stringstream ss;
ss << str;
int c;
ss >> c;
//atoi gcc - vc+
#include <string>
string str="12345";
int b=atoi(str.c_str());
// 需boost lib 没用过
#include <lexical_cast>
lexical_cast intValue = lexical_cast<int>(strValue) ;
现在具体谈一下,stringstream class 方法,该方法也可以实现到char*,bool等等及其你过程。
当使用stringstream的时候需要注意两点
1.多次转换,转换之间需要调用stringstream.clear函数
std::stringstream s1;
s1>>choices;
s1<<ps[1];
s1.clear();
s1<<ps[2];
s1>>blanks;
否则,变量被赋随机值
2.多次转换的时候,不要初始化instance
std::stringstream s1(ps[1]);
s1>>choices;
s1.clear();
s1<<ps[2];
s1>>blanks;
否则,clear()无效
参考文献: stringstream的用法 http://www.1-100.org/other/35899.htm