转: symbian c++ 各种数据类型转换


K歌之王

在symbian下虽然使用基本的C++数据类型在很多时候也可编译通过,但可能导致程序不可靠,要尽量使用symbian新定义的数据类型。

 

主要的基本数据类型有

整型:TInt--(C++)int,TUint--(C++)unsigned int, symbian里克认为控制整型数长度,在TInt后加数字(8,16,32或62)即可

字符型:用的不多,因为symbian有描述符,并封装了较完备的方法来处理字符串。

字符型:ETrue(真)和EFalse(假)

浮点型:TReal32,TReal64(symbian通常避免使用浮点数而采用整型算法,以精度换速度)

空类型:TAny,相当于C++中的void

枚举型:算整型的分支,enum

 

描述符: 用于字符串处理的一系列类,TBuf是TDes的子类,TbufC 相当于*char。

 

常见类型转换实例:

 

1. TDes转TInt

TInt  Utils::TDes2TIntL(TDesC &aDesC)

   TInt rstInt;
   TLex lexRec(aDesC);
   if(lexRec.Val(rstInt)!=KErrNone)
       User:eave(0);
   return rstInt;
}

 

2. 将symbian串转换成char串

      char* p = NULL;
      TBuf8<20> buf( _L( "aaaaa" ) );
      p = (char *)buf.Ptr();

 

3. TDesC8 & buf ;
TUint8     * pdata ;
pdata = buf.Ptr() ;
然后,这个pdata就可以当成unsigned char *用了,这在网络通讯的时候很重要。
如果,怕pdata破坏的话,可以
TBuf8<1024> tmp_buf ;
tmp_buf.Copy(buf) ;
pdata = tmp_buf.Ptr() ;
这样就可以保护一下buf的数据了,尤其是如果这个buf是Socket的接收的数据是接收函数自己分配的时候。

 

4. 数字转换成串

     TBuf16<20> buf;
     TInt iNum = 20;
     buf.Format( _L( "%d" ) , iNum    );

 

5. 串转换成数字

  TBuf16<20> buf(_L( "123" ) );
      TLex lex( buf );
      TInt iNum;
      lex.Val( iNum );

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值