複素数ライブラリでは、次の例に示す複素数のデフォルトの抽出子と挿入子が提供されています。
ostream& operator<<(ostream&, const complex&); //挿入子 istream& operator>>(istream&, complex&) //抽出子
抽出子と挿入子の基本的説明については、「iostream 操作の基本構造」と 「iostream を使用した出力」を参照してください。
入力の場合、複素数の抽出子 >> は、(括弧の中にあり、コンマで区切られた) 一組の値を入力ストリームから抽出し、複素数オブジェクトに読み込みます。最初の値が実部の値、2 番目の値が虚部の値となります。たとえば、次のような宣言と入力文がある場合、(3.45,5) と入力すると、複素数 x の値は 3.45+5.0i となります。抽出子の場合はこの反対になります。complex x(3.45,5), cout << x の場合は、(3.45,5) と表示されます。
complex x; cin >> x;
入力データは、通常括弧の中でコンマで区切られた一組の値で、スペースは入れても入れなくてもかまいません。値を 1 つだけ入力したとき (括弧とスペースは入力してもしなくても同じ) は、抽出子は虚部をゼロとします。シンボル i を入力してはいけません。
挿入子は、複素数の実部と虚部をコンマで区切り、全体を括弧で囲んで挿入します。シンボル i は含まれません。2 つの値は double 型として扱われます。