<@乌龟:>stringstream使用总结

今天看了看c++ cookbook,看到了一个很有用的东西,stringstream,可以很方便的完成连接字符串,进制转换,格式控制等工作.位于sstream.h中

# include <iostream>
# include <iomanip>
# include <string>
# include <sstream>
 
using namespace std;
 
int main()
{
    stringstream ss;
    ss << "There are " << 9 << " apples in my cart.";
    cout << ss.str() << endl;
 
    ss.str("");
    ss << showbase << hex << 16;
    cout << ss.str() << endl;
 
    ss.str("");
    ss << setprecision(4) << 3.1415927;
    cout << ss.str() << endl;
 
    cin >> ss.str();
}

使用初始化:

stringstream.str("..")

其他使用的方式就和输入输出流几乎一样了,使用iomanip里面的控制字可以使得输出不同的格式.使用ss.str()可以得到相应的字符串.

比如

    ss << showbase << hex << 16;

 

就表示

    1) 输出进制的符号(此处为0x)

    2) 输出16进制(hex)


另一个示例:

double SciToDub(const string& str)
{
    stringstream ss(str);
    double d = 0;
    ss >> d;
 
    if (ss.fail())
    {
        //add code to solve the exception
    }
 
    return d;
}

此处调用stringstream >> double的方法,可以完成将科学计数法表示的string转换到double中,而且通过查看stringstream.fail()可以知道是否转换成功

posted on 2009-07-29 17:51  乌龟_毛驴  阅读(2271)  评论(0编辑  收藏  举报

导航