字符串流的应用(stringstream\ istringstream ostringstream)

来看几个实例:

1)用于输出不同格式的:

  按行输入,然后按单词输出。

     string word,line;

 while(getline(cin,line))

       {

           istringstream is(line);

             while(is>>word)

                  cout<<word;

       }

2)用于不同类型之间的数据转换

    1.由其它的类型转化为字符串类型

        template <class T>

         string to_string (const T & t)

           {

                 ostringstream os;

                  if (!(os<<t)) { 错误处理}

                   return os.str();

           }

     2.由字符串类型转化为其它的类型

      template <typename T>

   T   from_string ( const string & s)

     {

                       T t;

                      istringstream is (s);

                     if(!(t>>s) ){ };

                   return t;

    }

 在转化后需要指明转化后的类型:double d=from_string<double>("12.33");

使用stringstream 可以实现任意的转化,只要指明类型


      template <class target,class source>

         target leix_cast(source srg)

        {

                                stringstream inter;

                               target  result;

               if(!(inter<<srg)||!(inter>>result)||!(inter>>std::ws).eof())  {出错处理}

                  return result;

                  }


 


         }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值