C++语法基础--标准IO库--字符串流
2013-07-04 21:06
417 查看
1.标准库定义的三中类型的字符串流(#include<sstream>)
istringstream,ostringstream,stringstream
*stringstream:
构造函数:
explicit stringstream (ios_base::openmode which = ios_base::in | ios_base::out);
explicit stringstream (const string& str,
ios_base::openmode which = ios_base::in | ios_base::out);
方法:
string str() const;
void str (const string& s)
eg:
string str("hello");
stringstream strm; //创建自由的stringstream对象
stringstream strm1(str); //创建存储str的副本的stringstream对象
strm1.str(); //返回strm1中存储的string类型对象
strm.str(str); //将string类型的str复制给strm,返回void
应用一:将一句话拆分成单词
int main()
{
string line,word;
getline(cin,line); //输入hello how are you
istringstream strm(line); //创建存储line的副本的stringstream对象
int count=0;
while(strm>>word)
{
cout<<++count<<":"<<word<<'\t'; //1: hello 2:how 3:are 4:you
}
return 0;
}
应用二:格式转换/格式化
int main()
{
string total,wipe;
int val1=1,val2=2,val3=0,val4=0;
ostringstream write;
write<<"val1: "<<val1<<ends<<"val2: "<<val2<<endl; //将表达式转为字符串(格式转换)
total=write.str();
cout<<total<<endl; //输出val1: 1 val2:2
istringstream read(total);
read>>wipe>>val3>>wipe>>val4; //将字符串的内容提取出来,注意提取时需对应写入时的顺序(格式化)
cout<<"val3: "<<val3<<ends<<"val4: "<<val4<<endl; //输出val3: 1 val4:2
return 0;
}
istringstream,ostringstream,stringstream
*stringstream:
构造函数:
explicit stringstream (ios_base::openmode which = ios_base::in | ios_base::out);
explicit stringstream (const string& str,
ios_base::openmode which = ios_base::in | ios_base::out);
方法:
string str() const;
void str (const string& s)
eg:
string str("hello");
stringstream strm; //创建自由的stringstream对象
stringstream strm1(str); //创建存储str的副本的stringstream对象
strm1.str(); //返回strm1中存储的string类型对象
strm.str(str); //将string类型的str复制给strm,返回void
应用一:将一句话拆分成单词
int main()
{
string line,word;
getline(cin,line); //输入hello how are you
istringstream strm(line); //创建存储line的副本的stringstream对象
int count=0;
while(strm>>word)
{
cout<<++count<<":"<<word<<'\t'; //1: hello 2:how 3:are 4:you
}
return 0;
}
应用二:格式转换/格式化
int main()
{
string total,wipe;
int val1=1,val2=2,val3=0,val4=0;
ostringstream write;
write<<"val1: "<<val1<<ends<<"val2: "<<val2<<endl; //将表达式转为字符串(格式转换)
total=write.str();
cout<<total<<endl; //输出val1: 1 val2:2
istringstream read(total);
read>>wipe>>val3>>wipe>>val4; //将字符串的内容提取出来,注意提取时需对应写入时的顺序(格式化)
cout<<"val3: "<<val3<<ends<<"val4: "<<val4<<endl; //输出val3: 1 val4:2
return 0;
}
相关文章推荐
- C++语法基础--标准IO库--简单的标准IO库
- C++语法基础--标准IO库--输出缓冲管理
- C++语法基础--标准IO库--文件的输入和输出(fstream,ifstream,ofstream)
- C++语法基础--标准库类型--vector
- C++语法基础--标准库类型--string(1)
- C++语法基础--标准库类型--bitset
- C++语法基础--标准库类型--string(2)
- C++语法基础--输出格式控制--setf(),标准控制符,iomanip中的格式控制
- C++语法基础--关联容器--set
- C++_03_基础语法
- c++ premier -- 标准IO库
- C++语法基础--类(class)--类型别名,this指针,初始化式,友元的一些注意细节
- C++基础语法
- C++语法基础--复制控制--复制构造函数 ,赋值操作符 ,析构函数
- C++语法基础--动态绑定,派生类,虚函数,覆盖虚函数机制
- c++基础学java知识点(类的基本语法)
- c++基础语法:虚继承
- 标准C++_01_编程基础
- 【C++】标准IO库
- C++笔记——标准IO库