c++标准库

2020-07-02  本文已影响0人  __bba3

<sstream>库

<1>ostringstream

int、long、double等类型转换成字符串string类型。

template<class T>
void to_string(string & result,const T& t){
    ostringstream oss;//创建一个流
    oss<<t;//把值传递如流中
    result=oss.str();//获取转换后的字符转并将其写入result
}
<2>stringstream

任意类型之间的转换。将in_value值转换成out_type类型

template<class out_type,class in_value>
out_type convert(const in_value & t){
    stringstream stream;
    stream<<t;//向流中传值
    out_type result;//这里存储转换结果
    stream>>result;//向result中写入值
    return result;
}
<3>istringstream

字符串转基本类型

istringstream iss;
iss.str("123");//或者直接构造  istringstream iss2("123 456");
int n;
iss >> n;

>>以空格为界。会把输入的流用空格分隔开。

   while(iss2>>str){//每次读取一个单词(以空格为界),存入str中 
        cout << str<<","; 
   }//123 456
<4>实例
    int n = 100;
    string str;
    //使用stringstream
    stringstream ss;
    ss << n;
    ss >> str;
    cout << str << endl;
    //使用ostringstream
    ostringstream oss;
    oss << n;
    str = oss.str();
    cout << str << endl;
std::stringstream stream;
char result[8] ;
stream << 8888; //向stream中插入8888
stream >> result; //抽取stream中的值到result
std::cout << result << std::endl; // 屏幕显示 "8888"
std::stringstream stream;
int first, second;
stream<< "456"; //插入字符串
stream >> first; //转换成int
std::cout << first << std::endl;
stream.clear(); //在进行多次转换前,必须清除stream
stream << true; //插入bool值
stream >> second; //提取出int
std::cout << second << std::endl;
上一篇 下一篇

猜你喜欢

热点阅读