stringstream的用法

stringstream通常是用来做数据转换的。相比c库的转换,它更加安全,自动和直接。

例子一:基本数据类型转换例子 int转 string

#include <string >

#include <sstream>

#include <iostream>?

int _tmain(int argc, _TCHAR* argv[])

{

std::stringstream stream ;

std::string result;

int i = 1000;

stream << i; //将int输入流

stream >> result; //从stream 中抽取前面插入的int值

std::cout << "result:"<<result << std::endl; // print the string "1000"

return 0;

}

运行结果 result:1000

例子二:除了基本类型的转换,也支持char *的转换。

 

#include "stdafx.h"

#include <sstream>

#include <iostream>?

 

 

int _tmain(int argc, _TCHAR* argv[])

{

 

std::stringstream stream ;

char result[8] ;

stream << 8888; //向stream 中插入8888

stream >> result; //抽取stream 中的值到result

std::cout << result << std::endl; // 屏幕显示 "8888"

return 0;

}

运行结果 8888

例子三:再进行多次转换的时候,必须调用stringstream的成员函数clear().

 

#include "stdafx.h"

#include <sstream>

#include <iostream>?

 

 

int _tmain(int argc, _TCHAR* argv[])

{

 

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;

return 0;

}

运行结果?

456?

1

 

http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380143fd3d1027fa3c215cc791a180c38a8b1213f405a8e90612647fc0f07bbed3c7832072ab29fcc8848dfb1992c2e882431751b835c069644ef9d49648760cb06bcb81897fbb672c4fd8d&p=81759a46d29457f340be9b781600&user=baidu

你可能感兴趣的:(c,Stream,String,user)