16进制格式字符串转 int64

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

int main()
{
/*----------------------------------
    十六进制,八进制转十进制
----------------------------------*/
    int decimal1,decimal2;
    string oct_test = "75";
    string hex_test = "A3";

    stringstream ss1;
    
    ss1.str(oct_test);
    ss1>>oct>>decimal1;
    cout<<"Convert oct to decimal:"<<decimal1<<endl;

    //ss1.clear();//若不想从新定义stringstream流,必须先清空ss1中的缓存
    stringstream ss2;
    ss2.str(hex_test);
    ss2>>hex>>decimal2;
    cout<<"Convert hex to decimal:"<<decimal2<<endl;

/*----------------------------------
    十进制转八进制、十六进制
----------------------------------*/
    int decimal;
    stringstream ss,sss;
    cout<<"Enter a decimal number:";
    cin>>decimal;
    /*下面两句等价于:
    cout<<"Convert to hex:"<<hex<<decimal<<endl;
    */
    //十进制转十六进制
    ss<<hex<<decimal;
    cout<<"Convert to hex:"<<ss.str()<<endl;
    //十进制转八进制
    ss.str(""); //同上,若不想从新定义stringstream流,必须先将ss.str()置为空
    ss<<oct<<decimal;
    cout<<"Convert to oct:"<<ss.str()<<endl;


    system("pause");
    return 0;
}


sscanf函数
  sscanf函数原型为int sscanf(const char *str, const char *format, ...)。将参数str的字符串根据参数format字符串来转换并格式化数据,转换后的结果存于对应的参数内。具体功能如下:

  (1)根据格式从字符串中提取数据。如从字符串中取出整数、浮点数和字符串等。

  (2)取指定长度的字符串

  (3)取到指定字符为止的字符串

  (4)取仅包含指定字符集的字符串

  (5)取到指定字符集为止的字符串

  当然,sscanf可以支持格式串"%[]"形式的,有兴趣的可以研究一下。

int main(){
    char s[15] = "123.432,432";
    int n;
    double f1;
    int f2;
    sscanf(s, "%lf,%d%n", &f1, &f2, &n);
    cout<<f1<<" "<<f2<<" "<<n;
    return 0;
} 


UINT64 n=0;
sscanf("fffff8016c432238", "%llx", &n);

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值