<sstream>输入流.输出流

来源:互联网 发布:网络安全要学java么 编辑:程序博客网 时间:2024/06/05 16:55

stringsteam 以空格为分隔,比如输入abc cbb输出就是先输出abc再输出cbb

#include<iostream>#include<algorithm>#include<sstream>#include<string>using namespace std;int main(){string line;while(getline(cin,line)){int sum=0;string x;stringstream ss(line);while(ss>>x)cout<<x<<endl;}return 0;}

/*基本数据类型变字符串*/  #include <fstream>   #include <iostream>   #include <sstream>   using namespace std;  int main()  {      /*整型变字符串*/      int n = 10;      string str;      stringstream stream;            stream << n;      stream >> str;            cout<<str<<endl;      stream.clear();//多次使用stringstream,要先清空下,不能使用stream.str("");否则下面输出10         /*char* 变 string*/      char cStr[10] = "china";            stream << cStr;      stream >> str;        cout<<str<<endl;      return 1;  }  

/*字符串变基本数据类型*/  #include <fstream>   #include <iostream>   #include <sstream>   using namespace std;  int main()  {      /*字符串 变 double*/      double n;      string str = "12.5";      stringstream stream;            stream << str;      stream >> n;            cout<<n<<endl;      stream.clear();//多次使用stringstream,要先清空下,不能使用stream.str("");         /*string 变 char* */      string str1 = "china";      char cStr[10];            stream << str1;      stream >> cStr;        cout<<cStr<<endl;//输出china       system("pause");      return 1;  }  


istringsteam

#include <iostream>   #include <sstream>   using namespace std;  int main()  {      istringstream istr("1 56.7");        cout<<istr.str()<<endl;//直接输出字符串的数据 "1 56.7"             string str = istr.str();//函数str()返回一个字符串       cout<<str<<endl;            int n;      double d;        //以空格为界,把istringstream中数据取出,应进行类型转换       istr>>n;//第一个数为整型数据,输出1       istr>>d;//第二个数位浮点数,输出56.7         //假设换下存储类型       istr>>d;//istringstream第一个数要自动变成浮点型,输出仍为1       istr>>n;//istringstream第二个数要自动变成整型,有数字的阶段,输出为56         //测试输出       cout<<d<<endl;      cout<<n<<endl;       return 1;  }  
ostringsteam
#include <iostream>   #include <sstream>   using namespace std;  int main()  {      //初始化输出字符串流ostr       ostringstream ostr("1234");      cout<<ostr.str()<<endl;//输出1234             ostr.put('5');//字符4顶替了1的位置       cout<<ostr.str()<<endl;//输出5234         ostr<<"67";//字符串67替代了23的位置,输出5674       string str = ostr.str();      cout<<str<<endl;      return 1;  }  
clear()的注意事项

#include <iostream>   #include <sstream>   using namespace std;    int main(int argc,char *argv[])  {      std::stringstream stream;      string str;      while(1)      {             //clear(),这个名字让很多人想当然地认为它会清除流的内容。           //实际上,它并不清空任何内容,它只是重置了流的状态标志而已!           stream.clear();              // 去掉下面这行注释,清空stringstream的缓冲,每次循环内存消耗将不再增加!           //stream.str("");                   stream<<"sdfsdfdsfsadfsdafsdfsdgsdgsdgsadgdsgsdagasdgsdagsadgsdgsgdsagsadgs";          stream>>str;               //测试输出每次循环,你的内存消耗增加了多少!           cout<<"Size of stream = "<<stream.str().length()<<endl;          system("PAUSE");      }        system("PAUSE");      return EXIT_SUCCESS;  }  




0 0