c++ iostream



iostream实际上是一个别名,本体是basic_iostream模版类。
iostream和wiostream都是从basic_iostream模版类实例化出来的。
iostream是用于普通ANSI字符,wiostream用于宽字符(Unicode)。


iostream的定义:
typedef basic_iostream<char, char_traits<char> > iostream;
而basic_iostream则是继承自basic_istream和basic_ostream两个模版类。实例化之后成为istream或wistream以及ostream和wostream。


所以如果广义的说,iostream继承自istream和ostream也是对的。
不过本质上说实际上是basic_iostream继承自basic_istream和basic_ostream,然后用char实例化成了iostream。


==============================================


#include <sstream>


std::ostringstream oss;
oss <<"result=0"
<<"&type="
<<gm_mail.iMail_type
<<"&source="
<<gm_mail.iMail_source
<<"&status="
<<gm_mail.iStatus
<<"&time_send="
<<formatDateTimeInfo(gm_mail.iTime_send).c_str()
<<"&time_receive="
<<formatDateTimeInfo(gm_mail.iTime_received).c_str()
<<"&time_expire="
<<formatDateTimeInfo(gm_mail.iTime_expire).c_str()
<<"&send_id="
<<gm_mail.ullSender_id
<<"&send_name="
<<CGI::Encode(std::string(gm_mail.szSender_name)).c_str()
<<"&receive_id="
<<gm_mail.ullReceiver_id
<<"&receive_name="
<<CGI::Encode(std::string(gm_mail.szReceiver_name)).c_str()
<<"&titile="
<<CGI::Encode(std::string(gm_mail.szTitle)).c_str()
<<"&content="
<<CGI::Encode(std::string(gm_mail.szContent)).c_str();


std::string strReq = oss.str();




================================================


istringstream   istringstream存储字符串并且可以将内部存储的数据输出到 局部变量, 类似于 sscanf
ostringstream   将外部数据输入到ostringstream中。


#include <iostream>
#include <sstream>
#include <string>
using namespace std;


int main()
{
 istringstream iss("12 34");
 int a, b;
 iss >> a >> b; //从字符串输入流iss中读取两个数
 cout << a << " " << b << endl;


 string str;
 ostringstream oss(str); //输出到string str中


 oss << a << " " << b;
 cout << oss.str() << endl; //取出输出缓冲区的值
 return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值