浅析如何使用字符串流进行格式转换
来源:互联网 发布:瘦脸针 知乎 编辑:程序博客网 时间:2024/04/28 02:50
#include <iostream>#include <sstream>#include <string>using namespace std;int main(void){ int ival1 = 512, ival2 = 1024; ostringstream format_message; format_message << "ival1:" << ival1 << '/n' << "ival2:" << ival2 << '/n'; cout << format_message.str() << endl; istringstream input_istring(format_message.str()); cout << "input_istring:" << input_istring.str() << endl; string dump1, dump2; input_istring >> dump1 >> ival1 >> dump2 >> ival2; cout << "ival1:" << ival1 << ' ' << "ival2:" << ival2 << '/n';}
stringstream 对象的一个常见用法是,需要在多种数据类型之间实现自动格式化时使用该类类型。 例如, 有一个数值型数据集合, 要获取它们的 string 表示形式,或反之。sstream 输入和输出操作可自动地把算术类型转化为相应的string表示形式,反过来也可以。
由以上程序即可先获得ival1和ival2的string表示形式,然后再反过来,由string表示形式获得算术类型表示形式。
以上程序是C++ primer中的一个示例程序,但表现不够直观,因为ival1和ival2的值始终是512和1024,为了更直观地表示程序是如何由string表示形式获得算术表示形式,可以编写以下程序演示:
#include <iostream>#include <sstream>#include <string>using namespace std;int main(void){ int ival1,ival2; string s = "ival1: 512 ival2: 1024"; istringstream input_istring(s); cout << "input_istring: " << input_istring.str() << endl; string dump1, dump2; input_istring >> dump1 >> ival1 >> dump2 >> ival2; cout << "ival1:" << ival1 << ' ' << "ival2:" << ival2 << '/n';}
运行以上程序,输出如下:
input_istring:ival1: 512 ival2: 1024
ival1:512 ival2:1024
程序说明:
1.之所以将s的每段字符使用空格隔开,是因为一般情况下,使用输入操作符读string时,空格符和换行符会被忽略。
2.执行input_istring >> dump1 >> ival1 >> dump2 >> ival2后,dump1值为”ival1”
,dump2值为”ival2”,ival1值为512,ival2值为1024
从该程序即可很容易看出,利用字符串流的确可以将string型数字提取出来并转换为int型。
- 浅析如何使用字符串流进行格式转换
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- C++字符串流(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- c++ 字符串流 sstream(常用于格式转换)
- 字符串流 转换为cin形式进行读写
- 字符串流的使用
- 如何使用标准字符串流istrstream,和itof
- C++ stringstream的用法|c++ 字符串流 sstream(常用于格式转换)
- json格式转换常用工具类,response发送字符串流工具类
- mutable 修饰的变量
- 特权级在保护模式下的应用
- mapinfo自定义符号文件的存放位置
- MyBatis经典入门实例
- 特权级在保护模式下的应用
- 浅析如何使用字符串流进行格式转换
- 特权级在保护模式下的应用
- Clear both 的妙用
- 博文视点大讲堂第33期——如何让你既能干得漂亮又说得清楚?
- 我们要永远在一起
- 今天开始研究用VC开发ocx
- 函数返回对象
- DELPHI调试程序出现“探测到调试器 - 请关闭后重启”
- asp.net中用C#生产验证码