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 `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.

— Function: size_t **mpf_out_str** (`FILE *stream, int base, size_t n_digits, const mpf_t op`)

optostream, 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 givenbase, 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`localeconv`

.For

basein 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_digitswill be printed from the mantissa, except that no more digits than are accurately representable byopwill be printed.n_digitscan be 0 to select that accurate maximum.

— Function: size_t **mpf_inp_str** (`mpf_t rop, FILE *stream, int base`)

Read a string in base

basefromstream, and put the read float inrop. 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, ifbaseis negative, in decimal. The decimal point expected is taken from the current locale, on systems providing`localeconv`

.The argument

basemay 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 ifbaseis 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.