Functions that perform input from a stdio stream, and functions that output to
a stdio stream, of
mpf numbers. Passing a
NULL pointer for a
stream argument to any of these functions will make them read from
stdin and write to
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.
(FILE *stream, int base, size_t n_digits, const mpf_t op)¶
Print op to stream, as a string of digits. Return the number of bytes written, or if an error occurred, return 0.
The mantissa is prefixed with an ‘0.’ and is in the given base,
which may vary from 2 to 62 or from −2 to −36. An exponent is
then printed, separated by an ‘e’, or if the base is greater than 10 then
by an ‘@’. The exponent is always in decimal. The decimal point follows
the current locale, on systems providing
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.
Up to n_digits will be printed from the mantissa, except that no more digits than are accurately representable by op will be printed. n_digits can be 0 to select that accurate maximum.
(mpf_t rop, FILE *stream, int base)¶
Read a string in base base from stream, and put the read float in
rop. The string is of the form ‘M@N’ or, if the base is 10 or
less, alternatively ‘MeN’. ‘M’ is the mantissa and ‘N’ is the
exponent. The mantissa is always in the specified base. The exponent is
either in the specified base or, if base is negative, in decimal. The
decimal point expected is taken from the current locale, on systems providing
The argument base may be in the ranges 2 to 36, or −36 to −2. Negative values are used to specify that the exponent is in decimal.
Unlike the corresponding
mpz function, the base will not be determined
from the leading characters of the string if base is 0. This is so that
numbers like ‘0.23’ are not interpreted as octal.
Return the number of bytes read, or if an error occurred, return 0.