Bug report g++: setw() for doubles
Bernd Feucht
bernd@bernd-feucht.de
Wed Nov 14 15:12:00 GMT 2001
Bug report for the g++ compiler
I'm currently using gcc version 2.95.2 19991024 (release).
The setw()-manipulator does not work properly for the output of double
numbers.
For testing I tried the following program:
#include <iostream.h>
#include <iomanip.h>
int main()
{
cout << setw(10) << 1.1 << setw(10) << 2.2 << endl;
return 0;
}
As far as I know the C++ specification, this program should type out:
" 1.1 2.2"
i.e. seven spaces before each double number to make the total length of
each output 10 characters long.
Instead, the output of the program above is:
"1.12.2"
i.e. the two numbers 1.1 and 2.2 without any spaces ahead.
The same program works well when I replace the double numbers by
integers or ""-enclosed strings. I does not work with ''-enclosed
characters (but that, I think, is normal, because the length of a
character is always one, so a field-length-manipulator is not really
needed).
If the above problem has already been fixed in a gcc version later than
2.95.2, please let me know.
As far as I remember, outputs of double numbers with the
setw()-manipulator were no problem in earlier releases of gcc. I noticed
the above stated problem when I recompiled a program written one year
ago (I don't remember with which gcc version, but I think it was
included in SuSE 7.0) with gcc version 2.95.2.
Greetings,
Bernd Feucht
More information about the Gcc-bugs
mailing list