Deitel & Associates, Inc. Logo

Back to
digg.png delicious.png blinkit.png furl.png
C++ How to Program, 5/e

© 2005
pages: 1500
Buy the Book!
Amazon logo
InformIT logo

This tutorial introduces ANSI/ISO C++'s stream formatting capabilties, including stream manipulators, justification, padding, integer formats, floating-point number formats, uppercase/lowercase control, formatting booleans as strings, and setting and restoring stream format states. This tutorial is intented for students and developers who are familiar with basic C++ input and output techniques using cin and cout. The techniques shown here can also be applied to file-based streams or other streams that extend the standard C++ stream class hierarchy.

Download the code examples for this tutorial.

[Note: This tutorial is an excerpt (Section 15.7) of Chapter 15, Stream Input/Output, from our textbook C++ How to Program, 5/e. These tutorials may refer to other chapters or sections of the book that are not included here. Permission Information: Deitel, Harvey M. and Paul J., C++ HOW TO PROGRAM, ©2005, pp.787-797. Electronically reproduced by permission of Pearson Education, Inc., Upper Saddle River, New Jersey.]

15.7 Stream Format States and Stream Manipulators (Continued)

15.7.1 Trailing Zeros and Decimal Points (showpoint)

Stream manipulator showpoint forces a floating-point number to be output with its decimal point and trailing zeros. For example, the floating-point value 79.0 prints as 79 without using showpoint and prints as 79.000000 (or as many trailing zeros as are specified by the current precision) using showpoint. To reset the showpoint setting, output the stream manipulator noshowpoint. The program in Fig. 15.13 shows how to use stream manipulator showpoint to control the printing of trailing zeros and decimal points for floating-point values. Recall that the default precision of a floating-point number is 6. When neither the fixed nor the scientific stream manipulator is used, the precision represents the number of significant digits to display (i.e., the total number of digits to display), not the number of digits to display after decimal point.

 1  // Fig. 15.13: Fig15_13.cpp
 2  // Using showpoint to control the printing of
 3  // trailing zeros and decimal points for doubles.
 4  #include <iostream>
 5  using std::cout;
 6  using std::endl;
 7  using std::showpoint;
 9  int main()
10  {
11     // display double values with default stream format
12     cout << "Before using showpoint" << endl
13        << "9.9900 prints as: " << 9.9900 << endl
14        << "9.9000 prints as: " << 9.9000 << endl
15        << "9.0000 prints as: " << 9.0000 << endl << endl;
17     // display double value after showpoint
18     cout << showpoint
19        << "After using showpoint" << endl
20        << "9.9900 prints as: " << 9.9900 << endl
21        << "9.9000 prints as: " << 9.9000 << endl
22        << "9.0000 prints as: " << 9.0000 << endl;
23     return 0;
24  } // end main
 Fig. 15.13  Controlling the printing of trailing zeros and decimal points in floating-point values.

 Before using showpoint
 9.9900 prints as: 9.99
 9.9000 prints as: 9.9
 9.0000 prints as: 9

 After using showpoint
 9.9900 prints as: 9.99000
 9.9000 prints as: 9.90000
 9.0000 prints as: 9.00000

Other sections in this tutorial:
Introduction to Stream Format States and Stream Manipulators
15.7.1 Trailing Zeros and Decimal Points (showpoint) (You are here).
15.7.2 Justification (left, right and internal)
15.7.3 Padding (fill, setfill)
15.7.4 Integral Stream Base (dec, oct, hex, showbase)
15.7.5 Floating-Point Numbers; Scientific and Fixed Notation (scientific, fixed)
15.7.6 Uppercase/Lowercase Control (uppercase)
15.7.7 Specifying Boolean Format (boolalpha)
15.7.8 Setting and Resetting the Format State via Member Function flags

Tutorial Index