stringstream通常是用來(lái)做數(shù)據(jù)轉(zhuǎn)換的。
相比c庫(kù)的轉(zhuǎn)換,它更加安全,自動(dòng)和直接。
例子一:基本數(shù)據(jù)類型轉(zhuǎn)換例子 int轉(zhuǎn)string
#include <string>
#include <sstream>
#include <iostream>
int main()
{
std::stringstream stream;
std::string result;
int i = 1000;
stream << i; //將int輸入流
stream >> result; //從stream中抽取前面插入的int值
std::cout << result << std::endl; // print the string "1000"
}
運(yùn)行結(jié)果:
例子二:除了基本類型的轉(zhuǎn)換,也支持char *的轉(zhuǎn)換。
#include <sstream>
#include <iostream>
int main()
{
std::stringstream stream;
char result[8] ;
stream << 8888; //向stream中插入8888
stream >> result; //抽取stream中的值到result
std::cout << result << std::endl; // 屏幕顯示 "8888"
}
例子三:再進(jìn)行多次轉(zhuǎn)換的時(shí)候,必須調(diào)用stringstream的成員函數(shù)clear().
#include <sstream>
#include <iostream>
int main()
{
std::stringstream stream;
int first, second;
stream<< "456"; //插入字符串
stream >> first; //轉(zhuǎn)換成int
std::cout << first << std::endl;
stream.clear(); //在進(jìn)行多次轉(zhuǎn)換前,必須清除stream
stream << true; //插入bool值
stream >> second; //提取出int
std::cout << second << std::endl;
}
運(yùn)行clear的結(jié)果
沒有運(yùn)行clear的結(jié)果
