C++标准库中的<sstream>
提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性
int转为string 利用stringstream
类进行转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <iostream> #include <string> #include <stringstream> using namespace std; int main () { int n = 65535 ; stringstream ss; string s; ss << n; ss >> s; cout << s << endl; return 0 ; }
string到int的转换
方法一:使用stringstream1 2 3 4 string result=”10000 ”; int n=0 ;stream<<result; stream>>n;
方法二:使用string库函数stoi
int stoi (const string& str, size_t* idx = 0, int base = 10);str
:输入的字符串idx
: 该参数被设置为输入的字符串中,数字字符之后的位置base
: 进制数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include <iostream> #include <string> int main () { std::string str_dec = "2001, A Space Odyssey" ; std::string str_hex = "40c3" ; std::string str_bin = "-10010110001" ; std::string str_auto = "0x7f" ; std::string::size_type sz; int i_dec = std::stoi (str_dec,&sz); int i_hex = std::stoi (str_hex,nullptr ,16 ); int i_bin = std::stoi (str_bin,nullptr ,2 ); int i_auto = std::stoi (str_auto,nullptr ,0 ); std::cout << str_dec << ": " << i_dec << " and [" << str_dec.substr (sz) << "]\n" ; std::cout << str_hex << ": " << i_hex << '\n' ; std::cout << str_bin << ": " << i_bin << '\n' ; std::cout << str_auto << ": " << i_auto << '\n' ; return 0 ; }
重复利用stringstream对象
如果在多次转换中使用同一个stringstream 对象,记住再每次转换前要使用**clear()**方法
相关链接