• 127.字符串输入输出流


      1 #include<iostream>
      2 //用于字符串的输入输出
      3 #include<sstream>
      4 #include<cstdlib>
      5 #include<string>
      6 //用于输出到字符串
      7 #include<strstream>
      8 using namespace std;
      9 
     10 void main1()
     11 {
     12     //创建字符串流(sprintf)
     13     stringstream mystr;
     14     //输出
     15     mystr.put('X').put('Y');
     16     //相当于汇总一个字符串(sprintf)
     17     mystr << "1234" << 12.89 << 4;
     18     cout << mystr.str() << endl;
     19 
     20     //类似以下也可以调用
     21     //mystr.put  
     22     //mystr.write
     23 
     24     cin.get();
     25 }
     26 
     27 //创建结构体,从字符串中截取字符
     28 struct info
     29 {
     30     string str1;
     31     string str2;
     32     string str3;
     33     int num;
     34     char ch;
     35     double db;
     36 
     37 };
     38 
     39 void main2()
     40 {
     41     //从字符串中获取数据,相当于sscanf,把数据截取到结构体中
     42     string str1("google microsoft  apple 100  A  10.9"); 
     43     //创建结构体
     44     info inf;
     45     //建立输入流(sscanf)
     46     istringstream iput(str1);
     47     //从输入流获取数据到结构体中
     48     iput >> inf.str1 >> inf.str2 >> inf.str3 >> inf.num >> inf.ch >> inf.db;
     49     //输出结构体信息
     50     cout << inf.str1 << "
    " << inf.str2 << "
    " << inf.str3 << "
    " << inf.num << "
    " << inf.ch << "
    " << inf.db;
     51 
     52     //类似以下也可以调用
     53     //iput.gcount
     54     //iput.getline();
     55 
     56 
     57     cin.get();
     58 }
     59 
     60 
     61 void main123213()
     62 {
     63     //切割数据
     64     char p[100] = "google ,microsoft , apple ,100 , A , 10.9";
     65     for (char *px = p; *px != ''; px++)
     66     {
     67         if (*px == ',')
     68         {
     69             *px = ' ';
     70         }
     71     }
     72 
     73 
     74     info inf;
     75     //建立输入流
     76     istringstream iput(p);
     77 
     78     iput >> inf.str1 >> inf.str2 >> inf.str3 >> inf.num >> inf.ch >> inf.db;//输入
     79     cout << inf.str1 << "
    " << inf.str2 << "
    " << inf.str3 << "
    " << inf.num << "
    " << inf.ch << "
    " << inf.db;
     80     cin.get();
     81 }
     82 
     83 void main123123()
     84 {
     85     char str[150] = { 0 };//当作缓冲区
     86     //建立输出流,写到str中
     87     ostringstream oput(str, sizeof(str));
     88     oput << "1233a" << 12.9 << 'A';
     89     //cout << oput.str() << endl;
     90     cout << str << endl;
     91 
     92     cin.get();
     93 }
     94 
     95 //另外一种方法 用到头文件 strstream
     96 void main1232132()
     97 {
     98     char str[150] = { 0 };//当作缓冲区
     99     //创建输出流,输出到缓冲区中     ostrstream在strstream头文件中
    100     ostrstream oput(str, sizeof(str));
    101     oput << "1233a" << 12.9 << 'A';
    102     //cout << oput.str() << endl;
    103     cout << str << endl;
    104 
    105     cin.get();
    106 }
  • 相关阅读:
    [CF600E]Lomsat gelral
    [BZOJ3237]连通图
    [CF580D]Kefa and Dishes
    [BZOJ4726]Sabota?
    bzoj2120&&2453 -- 带修改莫队
    bzoj4726 [ POI2017 ] -- 树形DP
    bzoj2809 [ APIO2012 ] -- 主席树
    bzoj4216 -- 分块
    bzoj4173 -- 欧拉函数
    bzoj2982 -- Lucas定理
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8620511.html
Copyright © 2020-2023  润新知