字符串流 istringstream ostringstream stringstream

字符串流 istringstream ostringstream stringstream

         iostream标准库支持内存中的输入输出,只要将流与存储在程序内存中的string对象捆绑起来即可,此时,可用iostream输入和输出操作符来读写这个string对象。

标准库定义了三种类型的字符串流:

l  istringstream  由istream派生而来,提供读string的功能

l  ostringstream 由ostream派生而来,提供写string的功能

l  stringstream   由iostream派生而来,提供读写string的功能

包含头文件 #include

 

stringstream特定的操作

stringstream ss;

创建自由的stringstream对象

stringstream ss(str);

创建str副本的stringstream对象

ss.str()

返回ss中存储的string类型对象

ss.str(str);

将string类型的str赋值给ss,返回void

 

stringstream对象的使用

可以先读入一行内容到内存string对象中,然后再拆分数据项。

    string str;
    int n,a,b,c;
    stringstream ss;
    while (1)
    {
        getline(cin,str,';');   // 读入以";"结束的一行到str中    
        ss.clear(); // 多次转换前,先清io标志
        ss.str(str);    // 这里 ss.str() 里就只有 str 了
        //ss<>a>>b>>c;    // 从stringstream对象中读入int数据,无论上面哪种,都不影响这里的读入
 
        cout<<" "<


 

stringstream提供的转换和格式化

value->string

int value = 12345;
ss<


string -> value

ss<<"value: "<>dump>>x;
cout<


 

在这里,<<将数据输出到string对象(相当于cout输出到控制台),而>>从string对象里读出数据。

注意:>> 默认的分隔符也是空格 tab 和换行。

多次转换之间,先调用clear()清除io标志。

 

 

 

你可能感兴趣的:(C++)