Skip to main content
Engineering LibreTexts

16.3: Formatting Output

  • Page ID
    10340
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    General Discussion

    Formatting of output is handled in different ways in the various languages used today. Many programming languages have different formatting instructions for the standard output device which is usually the monitor (going to a DOS black screen output box) versus using the monitor as a Graphical User Interface (GUI). File storage output is often handled similarly to the standard output device. All of this makes formatting of output very machine, output device and language dependent.

    When teaching programming fundamentals, many professors prefer to use the standard output device. For the C++ programming language this means going to the monitor using a DOS black screen output box.

    C++ Considerations using Standard Output (cout)

    Text Wrapping and Vertical Spacing

    There are two items used to keep output from filling up a line and wrapping on to the next line. They are:

    • Using the escape code sequence of \n within your strings (text between as set of double quote marks).
    • Using the item from the iostream named: endl; which is short for end line.

    Thus the programmer is responsible for making text show reasonably on the screen. Both of the above also allow for adequate vertical spacing when needed in your output.

    Handling Floating-point Data Type

    It is nice to have your output displayed so humans can read it (most humans are not use to scientific notation). There are three lines often inserted near the start of your code (first items in the function main) that can be used to direct the formatting of floating-point data. They are:

    cout.setf(ios::fixed);

    cout.setf(ios::showpoint);

    cout.precision(n);

    They do the following for the rest of your program:

    • fixed – Do not use scientific notation but show floating-point values like integer values (numeral digits of 0 to 9 – no exponent notation).
    • showpoint – Always show a decimal point for floating-point values even if there is no fractional part.
    • precision – Always show this number of digits (change n to a number like 2) to the right of the decimal point.

    Setting the Width for Numbers

    Setting the width for integer family and floating-point family data types must be done for the output of each value. Assume in the following example that age is an integer data type and money is a floating-point data type.

    cout << setw(4) << age << endl;

    cout << setw(8) << money << endl;

    Note that each value had to have its own setw(n) where n is an integer number telling it how many positions to use for the output. The iomanip header file (immediately shown) will need to be included in your program.

    #include<iomanip> // needed for the setw

    Demonstration Program in C++

    Creating a Folder or Sub-Folder for Source Code Files

    Depending on your compiler/IDE, you should decide where to download and store source code files for processing. Prudence dictates that you create these folders as needed prior to downloading source code files. A suggested sub-folder for the Bloodshed Dev-C++ 5 compiler/IDE might be named:

    • Demo_Programs

    If you have not done so, please create the folder(s) and/or sub-folder(s) as appropriate.

    Download the Demo Program

    Download and store the following file(s) to your storage device in the appropriate folder(s). Following the methods of your compiler/IDE, compile and run the program(s). Study the source code file(s) in conjunction with other learning materials.

    Download from Connexions: Demo_Formatting_Output.cpp

    Definitions

    Formatting
    Modifying the way the output is displayed.
    Wrapping
    When output is not vertically spaced properly.

    This page titled 16.3: Formatting Output is shared under a CC BY license and was authored, remixed, and/or curated by Kenneth Leroy Busbee (OpenStax CNX) .

    • Was this article helpful?