Next: , Previous: , Up: Integer Functions   [Index]


5.12 入出力関数

ここではstdioストリームに対してmpz数の入出力を行う関数群を解説します。 stream引数にNULLが渡されると,入力はstdinから,出力は stdoutに行います。

この入出力関数を使うときには,gmp.hより前にstdio.hをインクルードしておいて下さい。gmp.hでこの入出力関数のプロトタイプ宣言が使えるようになります。

Formatted OutputFormatted Inputも併せて参照して下さい。

Function: size_t mpz_out_str (FILE *stream, int base, const mpz_t op)

opをstdioストリームstreamに,基数baseの文字列として出力します。基数は2以上62以下,もしくは,-36以上-2以下に設定できます。

baseが2以上36以下の時は,数字,その次に,小文字が使われます。-36以上-2以下の時は,数字,次に,大文字が使われます。37以上62以下の時には,数字,次に大文字,最後に小文字が使われます。

返り値は出力したバイト数です。エラーが起こった時には0が返ります。

Function: size_t mpz_inp_str (mpz_t rop, FILE *stream, int base)

ホワイトスペースを先頭に含む基数baseの文字列をstdioストリームstreamから読み取り,ropに格納します。

baseは2以上62以下に設定できます。baseが0の場合は,先頭文字で基数を判断します。0x0Xは16進数,0b0Bは2進数,0は8進数,特に指定がないか,これ以外の指定があれば10進数と判断します。

36以下の基数の場合,大文字小文字の区別は行わず,全て同じ値とみなします。37以上62以下の基数の場合は,大文字は10~35,小文字は36~61と見なします。

返り値は読み込んだバイト数で,エラーが発生した時には0が返ります。

Function: size_t mpz_out_raw (FILE *stream, const mpz_t op)

2進形式の値として,stdioストリームstreamopを出力します。整数はどの環境でも利用可能な形式で出力され,4バイトのサイズ情報にリムの列が続きます。サイズやリムは有効桁数の小さい順に(即ち,ビッグエンディアンで)出力されます。

出力結果はmpz_inp_raw関数で読み取ることができます。

返り値は書き出したバイト数で,エラーが発生した時にはゼロが返ります。

この出力結果は,GMP 1では32bit環境と64bit環境の互換性の問題があり,mpz_inp_raw関数で読み取ることができなくなりました。

Function: size_t mpz_inp_raw (mpz_t rop, FILE *stream)

mpz_out_raw関数で書き込んだフォーマットに従ってstdioストリームstreamからの入力を行い,その結果をropに格納します。返り値は読み込んだバイト数で,エラーが発生した時には0が返ります。

この関数はmpz_out_raw関数の出力を読み取ることができます。GMP 1では,32bit環境と64bit環境の食い違いを正すための変更が必要になります。