C++中stringstream实现C中sprintf与atoi功能

目前对C语言的使用比较多,C++ 的经验不是很多。

用stringstream  实现 C 中的sprintf 以及atoi函数的方法。


#include <iostream>
#include <string>
#include <sstream>

#include <stdio.h>
#include <stdlib.h>

using namespace std;
int main()
{
	int i=24;
	string name("liukang");

	//C++ stringstream int->str;
	stringstream sstr;
	sstr<<"my name :"<<name<<","<<i<<";"<<hex<<i;
	string str=sstr.str();
	cout<<str<<endl;

	//C sprintf()
	char buf[100]={0};
	sprintf(buf, "my name :%s,%d;%x",name.c_str(),i,i);
	cout<<buf<<endl;


	//C++ stringstream str->int;
	int num=0;
	string p("30");
	stringstream ss;
	ss<<p;
	ss>>num;
	cout<<"num="<<num<<endl;

	//C atoi()
	int n=0;
	cout<<"num="<<atoi(p.c_str())<<endl;

	return 0;
}


两个常用API:
    #include <iostream>  
    #include <algorithm>  
    #include <string>  
    #include <numeric>  
    #include <vector>  
    #include <cstdio>  
    #include <sstream>  
    using namespace std;  
      
    //c++方法:将数值转换为string  
    string convert_to_string(double x)  
    {  
        ostringstream o;  
        if(o << x)  
            return o.str();  
        return "conversion error";  
    }  
    //c++方法,将string转化为数值  
    double convert_from_string(const string &s)  
    {  
        istringstream i(s);  
        double x;  
        if(i >> x)  
            return x;  
        return 0.0;  
    }  
    int main(int argc,char *argv[])  
    {  
        //将数值转换为string的第一种方法:c方法  
        char b[10];  
        string a;  
        sprintf(b,"%d",1975);  //数值转化为string  
        a=b;  
        cout<<a<<endl;  
      
        string cc=convert_to_string(1976);  
        cout<<cc<<endl;  
      
        string dd="115165";  
        int p=convert_from_string(dd)+2;  
        cout<<p<<endl;  
        return 0;  
    }  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值