Next: Miscellaneous Float Functions, Previous: Float Comparison, Up: Floating-point Functions [Index]

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`) 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`localeconv`

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

- Function:
*size_t***mpf_inp_str***(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`localeconv`

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