String Stream でデータを切り分ける

sscanf() と同様に文字列からデータを切り分けます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. String Stream を使うときは sstream をインクルードして下さい。
    istringstream iss が入力 Stream の定義です。
    iss から >> で読み出すと sscanf() と同様にセパレータ(空白, カンマ, セミコロン)で区切られた文字列からデータを切り分けて、 それぞれの変数に格納されます。
    切り分けて格納されたデータを << でコンソールに表示しています。
    char c; cin.get(c); は出力画面を確認するためのコードです。
    #include <iostream>
    #include <sstream>
    using namespace std;
    
    istringstream  iss("1, 3.14 ; ABC  123");
    
    int main()
    {   int     num1, num2;
        float   f;
        string  str;
        char    c1,c2;
    
        iss >> num1 >> c1 >> f >> c2 >> str >> num2;  // 文字列を展開
        cout << "num1=" << num1 << "  f=" << f << "  str=" << str << "  num2=" << num2 << endl;
    
        char   c;
        cin.get(c);
        return 0;
    }
    
  2. コンソールには次のように表示されました。
    num1=1  f=3.14  str=ABC  num2=123
    

超初心者のプログラム入門(C/C++)