Previous: Formatted Input Functions, Up: Formatted Input [Index]
ここで述べる関数は libgmpxx (see Headers and Libraries)で提供されており,C++サポートを有効にしている時のみビルドされるものです(see Build Options)。関数プロトタイプは<gmp.h>
で定義されています。
ios
の書式指定文字列に則ってstreamを読み取ってropに格納します。
‘123’のような整数や‘5/9’のような分数を読み取ります。‘/’の前後にホワイトスペースが入ると正常に読み取れません。分数が標準形でない場合は,mpq_canonicalize
関数を使って変換しておく必要があります(see Rational Number Functions)。
整数の読み取りの際には,ios::dec
, ios::oct
,ios::hex
という指定がなくとも,‘0’や‘0x’のように基数指定があれば読み取りできます。分数の場合は分子と分母の基数指定は別個に可能で,‘0x10/11’ は16/11,‘0x10/0x11’ は 16/17となります。
ios
の書式指定に則り,streamを読み取ってropに格納します。
16進浮動小数点数や8進浮動小数点数のサポートはありません。将来は分かりませんが,今のところは標準浮動小数点数を読み取るoperator>>
の機能だけサポートするのがベストと考えています。
istream
ロケールで指定された桁まとめ機能は現状サポートしていません。そのうちサポートされるかもしれません。
これらのオペレータは,C++の普通のやり方でGMPデータ型の読み取りができます。例えば下記のように使います。
mpz_t z; ... cin >> z;
istream
入力(と ostream
出力, see C++ Formatted Output)はGMPデータ型に対してのみオーバーロードされているので,mpz_t
に+
を使った場合,結果は予測不能になります。オーバーロードされたクラスについてはC++ Class Interfaceを参照して下さい。