C++中与控制台相关的输入输出流是iostream类、istream类和ostream类。cin和cout是istream类和ostream类的对象,分别向控制台读取和写入数据。除了对控制台进行IO操作外,还需要对字符串进行IO操作,这就需要另外的输入输出流类stringstream、istringstream和ostringstream。以上三种类型在头文件sstream中定义。
1 字符串输入流类istringstream
可以使用以下代码定义字符串输入流类的对象
istringstream iss("12345");
其中字符串输入流对象iss中的内容是“12345”。可以像使用cin一样使用字符串输入流类的对象iss。
string str1;
iss >> str1;
此时,str1中的内容是12345。需要注意的是,从iss中读取了数据之后,从该流中就不能再次读取数据了。
string str2;
iss >> str2;
此时,str2中没有数据。
2 字符串输出流类ostringstream
可以像使用cin一样使用字符串输出流类的对象。
ostringstream oss;
oss << "789";
此时oss流中的内容是“789”,可以通过如下代码来访问这些数据。
str2 = oss.str();
其中,str2的值是“789”。需要注意的是,在使用istringstream和ostringstream时,需要包含sstream头文件。
#include <sstream>