| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 393 人关注过本帖
标题:一个string对象和数值件相互转换的代码
只看楼主 加入收藏
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
结帖率:94.64%
收藏
已结贴  问题点数:20 回复次数:1 
一个string对象和数值件相互转换的代码
程序代码:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;

string convertToString(double x)//将数值转换为string
{
    ostringsream o;
    if(o<<x)//<<这个符号什么作用?叫什么 ?难道是移位?还是类似于cout<<x?
        return o.str();//o.str(),str()函数什么用?
    return "conversion error";
}

double convertFromString(const string &s)//将string转换为数值
{
    istringsream i(s);
    double x;
    if(i>>x)
        return x;
    return 0.0;
}

int main()
{
    //数值转换为string   
    //C方法
    char b[10];
    string a;
    sprintf(b,"%d",1975);//这个函数式干嘛用的啊?
    a=b;
    cout<<a<<endl;
    //c++方法
    string cc=convertToString(1976);
    cout<<cc<<endl;
    //string 转换为数值--c++方法
    string dd="2006";
    int p=converFromString(dd)+2;
    cout<<p<<endl;
    return 0;
}
谢谢了哈

[ 本帖最后由 a99875984 于 2013-3-18 13:13 编辑 ]
2013-03-18 13:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
你问的这些问题别人无法回答呀,因为这些都是C/C++中最基础的知识,你得看书,系统的学习C/C++。

BTW:你听说过 lexical_cast 吗,它可以在任意两个类型之间转换,比你这段代码通用多了
程序代码:
template<typename Target, typename Source>
Target lexical_cast(Source arg) {
    std::stringstream interpreter;
    Target result;
    if( !(interpreter<<arg) || !(interpreter>>result) || !(interpreter>>std::ws).eof() )
        throw bad_lexical_cast();
    return result;
}

2013-03-18 14:35
快速回复:一个string对象和数值件相互转换的代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019944 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved