我们可以让内存中的一个字符串成为一个字符串流,就行fstream一样,可以使用使用">>/<<"进行输入输出。
这中输入输出我们称之为“内存内部I/O(in-memory I/O)”,并通过定义在<sstream>中的istringstream,ostringstream,stringstream实现。
istringstream 从一个字符串得到输入
ostringstream 输出到一个字符串
stringstream 从一个字符串输入以及输出到一个字符串
这个特性在GUI程序里面经常用到,因为我们要对用户输入的字符串,进行各种操作。
[code=C/C++]/*string 流演示*/
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cassert>
#include <sstream>
using namespace std;
int main( )
{
string date="U.S. independence: July 4,1776";
istringstream istr( date );
string word1,word2,month;
int day,year;
char comma;
istr>>word1>>word2>>month>>day>>comma>>year;
cout<<"contents of istringstream istr,one word per line:/n"
<<word1<<endl<<word2<<endl<<month<<endl<<day<<comma<<endl<<year<<endl;
// const int Y2K=1999;
//ofstream outfile( "file.out" );
//assert( outfile.is_open( ) );
ostringstream ostr;
ostr<<word1<<"bicentennial: "<<month<<setw( 2 )<<day<<","<<year+200<<endl;
cout<<"contents of ostringstream ostr:/n"<<ostr.str( );
// outfile<<ostr.str( );
return 0;
}
[/code]