第八篇:使用字符串流对象进行格式转换
前言
字符串流对象有个很实用的功能就是格式转换。比如可以将整数类型的123转换成字符串格式的123,或者反过来。那么具体又是如何实现的?且看下文。
实现思路
对于整数转换成字符串格式,可设s是一个空的字符串流对象,” 整型变量 “存放目标整数。则当执行" s << 整型变量 "后,该整数将转成字符串格式并存进流中。随后代码中使用" s.str() "即可获取到该整数的字符串格式。对于字符串转换成整数格式,亦可设s是一个空的字符串流对象,” 整型变量 “存放转换结果。可先将目标字符串存放进字符串流对象,然后执行" s >> 整型变量 “。此后该整型变量既是目标字符串的整数格式。
示例代码1:整数格式 -> 字符串格式
1 #include <iostream> 2 // 使用字符串流对象记得包含此头文件 3 #include <sstream> 4 5 using namespace std; 6 7 int main() 8 { 9 int num; 10 cout << "请输入要转换的整数: " << endl; 11 cin >> num; 12 13 stringstream s; 14 s << num; 15 cout << "转换完毕..." << endl << endl; 16 17 cout << "整数格式: " << num << endl; 18 cout << "字符串格式: " << s.str() << endl; 19 20 return 0; 21 }
运行结果:
示例代码2:字符串格式 -> 整数格式
1 #include <iostream> 2 // 使用字符串流对象记得包含此头文件 3 #include <sstream> 4 5 using namespace std; 6 7 int main() 8 { 9 string st; 10 cout << "请输入要转换的字符串: " << endl; 11 cin >> st; 12 13 stringstream s(st); 14 int num; 15 s >> num; 16 cout << "转换完毕..." << endl << endl; 17 18 cout << "字符串格式: " << s.str() << endl; 19 cout << "整数格式: " << num << endl; 20 21 return 0; 22 }
运行结果: