istringstream,ostringstream和stringstream

1、頭文件

#include <sstream>

2、作用

istringstream類用於執行C++風格的字符串流的輸入操作。 

ostringstream類用於執行C++風格的字符串流的輸出操作。 

stringstream類同時可以支持C++風格的串流的輸入輸出操作。

3、代碼

1) istringstream

#include <iostream>
#include <sstream>
using namespace std;
int main()
{
    string tmp="I am a 18 boy";
    istringstream is(tmp);
    string s;
    while(is>>s)
        cout << " " << s;
    cout << endl;
    std::string stringvalues = "125 320 512 750 333";
    std::istringstream iss (stringvalues);

    for (int n=0; n<5; n++)
    {
        int val;
        iss >> val;
        std::cout << val*2 << '\n';
    }
    return 1;
}
 I am a 18 boy
250
640
1024
1500
666

2) ostringstream

// ostringstream constructor
#include <iostream>     // std::cout, std::ios
#include <sstream>      // std::ostringstream

int main () {
  std::ostringstream foo;                            // out
  std::ostringstream bar (std::ostringstream::ate);  // out|ate

  foo.str("Test string");
  bar.str("Test string");

  foo << 101;
  bar << 101;

  std::cout << foo.str() << '\n';
  std::cout << bar.str() << '\n';
  return 0;
}
101t string
Test string101

3) stringstream

// swapping ostringstream objects
#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream

int main () {

    std::stringstream ss;

    ss << 100 << ' ' << 200;

    int foo,bar;
    ss >> foo >> bar;

    std::cout << "foo: " << foo << '\n';
    std::cout << "bar: " << bar << '\n';

    std::string stringvalues = "125 320 512 750 333";
    std::stringstream iss (stringvalues);

    for (int n=0; n<5; n++)
    {
        int val;
        iss >> val;
        std::cout << val*2 << '\n';
    }

    return 0;
}
foo: 100
bar: 200
250
640
1024
1500
666

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章