istringstream、ostringstream和stringstream

库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。简单起见,我主要以stringstream为中心,因为每个转换都要涉及到输入和输出操作。
注意,使用string对象来代替字符数组。这样可以避免缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了不正确的格式化符也没有危险。

#include 
#include 
using namespace std;
/************************************************************************/
/* 将任意类型转为字符串                                                                     */
/************************************************************************/
template<class T>
void to_string(string &result , const T& t)
{
    ostringstream oss ;//创建一个流
    oss<
    result = oss.str() ;//获取转换后的字符并将其写入result
}
/************************************************************************/
/* 任意类型之间的转换                                                                     */
/************************************************************************/
template<class T_in , class T_out>
T_out convert(const T_in &t)
{
    stringstream stream ;
    stream<
    T_out result ;//这里存储转换结果
    stream>>result ;//向result中写入值
    return result ;
}
/************************************************************************/
/* string 转char*                                                                     */
/************************************************************************/
char* StringToChar(const string& str)
{
    stringstream stream ;
    char *resulst = new char[sizeof(str) + 1] ;
    stream << str ;
    stream >> resulst ;
    cout<
    return resulst ;
}
void main()
{
    string str1 ;
    to_string(str1 , 10.2) ;
    cout<
    double d ;
    string s = "12.56" ;
    d = convert(s) ;
    cout<
}

你可能感兴趣的:(C++)