Functions that perform input from a stdio stream, and functions that output to
a stdio stream, of mpz
numbers. Passing a NULL
pointer for a
stream argument to any of these functions will make them read from
stdin
and write to stdout
, respectively.
When using any of these functions, it is a good idea to include stdio.h before gmp.h, since that will allow gmp.h to define prototypes for these functions.
See also Formatted Output and Formatted Input.
size_t
mpz_out_str (FILE *stream, int base, const mpz_t op)
¶Output op on stdio stream stream, as a string of digits in base base. The base argument may vary from 2 to 62 or from −2 to −36.
For base in the range 2..36, digits and lower-case letters are used; for −2..−36, digits and upper-case letters are used; for 37..62, digits, upper-case letters, and lower-case letters (in that significance order) are used.
Return the number of bytes written, or if an error occurred, return 0.
size_t
mpz_inp_str (mpz_t rop, FILE *stream, int base)
¶Input a possibly white-space preceded string in base base from stdio stream stream, and put the read integer in rop.
The base may vary from 2 to 62, or if base is 0, then the leading
characters are used: 0x
and 0X
for hexadecimal, 0b
and
0B
for binary, 0
for octal, or decimal otherwise.
For bases up to 36, case is ignored; upper-case and lower-case letters have the same value. For bases 37 to 62, upper-case letters represent the usual 10..35 while lower-case letters represent 36..61.
Return the number of bytes read, or if an error occurred, return 0.
size_t
mpz_out_raw (FILE *stream, const mpz_t op)
¶Output op on stdio stream stream, in raw binary format. The integer is written in a portable format, with 4 bytes of size information, and that many bytes of limbs. Both the size and the limbs are written in decreasing significance order (i.e., in big-endian).
The output can be read with mpz_inp_raw
.
Return the number of bytes written, or if an error occurred, return 0.
The output of this can not be read by mpz_inp_raw
from GMP 1, because
of changes necessary for compatibility between 32-bit and 64-bit machines.
size_t
mpz_inp_raw (mpz_t rop, FILE *stream)
¶Input from stdio stream stream in the format written by
mpz_out_raw
, and put the result in rop. Return the number of
bytes read, or if an error occurred, return 0.
This routine can read the output from mpz_out_raw
also from GMP 1, in
spite of changes necessary for compatibility between 32-bit and 64-bit
machines.