Does stream I/O support "%a" floating-point format?

J

John Friedland

'printf' has a '%a' conversion for floating-point output:
The `%a' and `%A' conversions are meant for representing
floating-point numbers exactly in textual form so that they can be
exchanged as texts between different programs and/or machines. The
numbers are represented is the form [`-']`0x'H`.'HHH`p'[`+'|`-']DD.

For example, printing '123456' with "|%13.4a|" produces

| 0x1.e240p+16|

I've looked through Josuttis and the header files, but I can't find
any flags or manipulators that could handle this. Is this possible
with stream I/O?

Supplementary question: does anyone know how to search for a '%a' in
Google groups?

Thanks -

John
 
P

Pete Becker

John said:
'printf' has a '%a' conversion for floating-point output:

The %a and %A conversion specifiers are new in C99. C++ is based on C90,
so as it stands now, it doesn't have them. TR1 adds them, and that's one
of the parts of TR1 that's been added to the working draft for the next
version of the C++ standard.

But in practice, if your C library supports them, they'll work in C++, too.
 
P

P.J. Plauger

The %a and %A conversion specifiers are new in C99. C++ is based on C90,
so as it stands now, it doesn't have them. TR1 adds them, and that's one
of the parts of TR1 that's been added to the working draft for the next
version of the C++ standard.

But in practice, if your C library supports them, they'll work in C++,
too.

Right. Our current product, which includes full TR1 support, also provides
the manipulator hexfloat, so you can insert hexadecimal format
floating-point
values into a stream. As Pete says, both %a in printf and hexfloat in
iostreams are part of TR1 and will be part of the next C++ Standard.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 
P

P.J. Plauger

The %a and %A conversion specifiers are new in C99. C++ is based on C90,
so as it stands now, it doesn't have them. TR1 adds them, and that's one
of the parts of TR1 that's been added to the working draft for the next
version of the C++ standard.

But in practice, if your C library supports them, they'll work in C++,
too.

Right. Our current product, which includes full TR1 support, also provides
the manipulator hexfloat, so you can insert hexadecimal format
floating-point
values into a stream. As Pete says, both %a in printf and hexfloat in
iostreams are part of TR1 and will be part of the next C++ Standard.

P.J. Plauger
Dinkumware, Ltd.
http://www.dinkumware.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top