Previous: Applying Integer Functions, Up: Rational Number Functions [Index]
ここに述べる関数は,標準入出力ストリームとの入出力行うものです。NULL
ポインタがstream引数に渡されると,stdin
やstdout
との入出力を行います。
この関数群を使う際には, gmp.hより前にstdio.hをインクルードしておき,必要となるプロトタイプ宣言が利用できるようにしておきます。
Formatted Output や Formatted Inputも参照して下さい。
opをstdioストリームstreamに,基数baseの文字列として出力します。基数は2以上36以下に設定できます。出力形式は‘num/den’となりますが,分母が1の時は ‘num’だけになります。
返り値は書きこんだバイト数です。エラーが起こった時にはゼロが返されます。
streamから文字列を読み込んで有理数に変換し,ropに格納します。先頭のホワイトスペースは読み込みますが影響はしません。返り値は読み込んだ文字数(ホワイトスペースも含む)で,有理数として読み取れない場合はゼロが返されます。
入力できるのは‘17/63’という有理数の形式か,‘123’という整数の形式です。この形式に当て嵌まらない文字があると読み込みを停止します。ホワイトスペースが文字列中に入ることは認められていません。入力が標準形でない場合は, mpq_canonicalize
関数を呼び出す必要があります(see Rational Number Functions)。
baseは2以上36以下に設定できます。0の場合は,先頭の文字で基数を判断します。 ‘0x’ や ‘0X’は16進,‘0’は8進,何もなければ10進と解釈します。この先頭文字による基数の解釈は分子と分母で別々に行いますので,例えば ‘0x10/11’ は 16/11,‘0x10/0x11’ は 16/17となります。