Bird
Raised Fist0
C++programming~5 mins

Basic formatting in C++

Choose your learning style10 modes available
Introduction

Basic formatting helps you control how text and numbers appear on the screen. It makes output easier to read and understand.

When you want to show numbers with a fixed number of decimal places.
When you want to align text or numbers in columns.
When you want to add spaces or fill characters to make output look neat.
When you want to display data in a table-like format.
When you want to format dates, times, or currency values.
Syntax
C++
#include <iostream>
#include <iomanip>

std::cout << std::setw(width) << value;
std::cout << std::setprecision(n) << value;
std::cout << std::fixed << value;
std::cout << std::left << std::right << std::internal << value;

#include <iomanip> is needed for formatting functions like setw and setprecision.

setw(width) sets the width of the next output field.

Examples
This prints the number 123 right-aligned in a field 10 characters wide.
C++
#include <iostream>
#include <iomanip>

int main() {
    std::cout << std::setw(10) << 123 << "\n";
    return 0;
}
This prints the number 3.14159 as 3.14 with two decimal places.
C++
#include <iostream>
#include <iomanip>

int main() {
    double pi = 3.14159;
    std::cout << std::fixed << std::setprecision(2) << pi << "\n";
    return 0;
}
This prints a simple table with left-aligned names in a 10-character wide column.
C++
#include <iostream>
#include <iomanip>

int main() {
    std::cout << std::left << std::setw(10) << "Name" << "Age" << "\n";
    std::cout << std::left << std::setw(10) << "Alice" << 30 << "\n";
    return 0;
}
Sample Program

This program prints a small price list with item names left-aligned and prices right-aligned with two decimal places.

C++
#include <iostream>
#include <iomanip>

int main() {
    std::cout << std::left << std::setw(10) << "Item" << std::right << std::setw(8) << "Price" << "\n";
    std::cout << std::left << std::setw(10) << "Apple" << std::right << std::setw(8) << std::fixed << std::setprecision(2) << 0.99 << "\n";
    std::cout << std::left << std::setw(10) << "Banana" << std::right << std::setw(8) << std::fixed << std::setprecision(2) << 1.25 << "\n";
    return 0;
}
OutputSuccess
Important Notes

Formatting affects only the next output or until changed again.

Use std::fixed to show decimal numbers in fixed-point notation.

Use std::left, std::right, or std::internal to control text alignment.

Summary

Basic formatting controls how output looks on the screen.

Use setw to set width and setprecision to control decimal places.

Alignment and fixed decimal formatting make output clearer and easier to read.

Practice

(1/5)
1. What does the setw manipulator do in C++ output formatting?
easy
A. Sets the number of decimal places for floating numbers
B. Sets the width of the next output field
C. Changes the text color in the console
D. Aligns text to the center automatically

Solution

  1. Step 1: Understand the purpose of setw

    The setw manipulator sets the width of the next output field in characters.
  2. Step 2: Compare with other manipulators

    setprecision controls decimal places, not width. Color and alignment are not handled by setw.
  3. Final Answer:

    Sets the width of the next output field -> Option B
  4. Quick Check:

    setw = width setting [OK]
Hint: Remember: setw sets width, setprecision sets decimals [OK]
Common Mistakes:
  • Confusing setw with setprecision
  • Thinking setw changes text color
  • Assuming setw aligns text automatically
2. Which of the following is the correct way to include setw in a C++ program?
easy
A. #include <string>
B. #include <format>
C. #include <iomanip>
D. #include <iostream>

Solution

  1. Step 1: Identify the header for setw

    The setw manipulator is defined in the iomanip header.
  2. Step 2: Check other headers

    iostream is for input/output streams but does not define setw. format and string are unrelated here.
  3. Final Answer:

    #include <iomanip> -> Option C
  4. Quick Check:

    setw needs iomanip header [OK]
Hint: Use <iomanip> for manipulators like setw [OK]
Common Mistakes:
  • Including only <iostream> and expecting setw to work
  • Confusing <format> with <iomanip>
  • Forgetting to include any header for setw
3. What is the output of this code?
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
  cout << setw(5) << 42 << endl;
  cout << setw(5) << 1234 << endl;
  return 0;
}
medium
A. 42 1234
B. 42 1234
C. 4321 24
D. 42 1234

Solution

  1. Step 1: Understand setw effect on output

    setw(5) sets the width to 5 characters, padding with spaces on the left by default.
  2. Step 2: Apply setw to numbers

    Number 42 is printed right-aligned in 5 spaces: 3 spaces + '42'. Number 1234 is 4 digits, so 1 space + '1234'.
  3. Final Answer:

    42 1234 -> Option A
  4. Quick Check:

    setw pads left with spaces [OK]
Hint: setw pads on left by default for numbers [OK]
Common Mistakes:
  • Assuming setw pads on the right
  • Ignoring spaces added by setw
  • Thinking setw truncates numbers
4. Identify the error in this code snippet:
#include <iostream>
using namespace std;

int main() {
  cout << setw(10) << 3.14159 << endl;
  return 0;
}
medium
A. No error, code runs fine
B. Using cout without std:: prefix
C. Incorrect use of endl
D. Missing <iomanip> header for setw

Solution

  1. Step 1: Check header includes

    The code uses setw but does not include <iomanip>, which is required.
  2. Step 2: Verify other parts

    cout is used with using namespace std;, so no prefix needed. endl usage is correct.
  3. Final Answer:

    Missing <iomanip> header for setw -> Option D
  4. Quick Check:

    setw needs iomanip header [OK]
Hint: Always include <iomanip> when using setw [OK]
Common Mistakes:
  • Forgetting to include <iomanip>
  • Thinking cout needs std:: with using namespace std;
  • Assuming endl usage causes error
5. How would you format the output of a floating-point number to always show exactly 3 decimal places and a total width of 8 characters, right-aligned?
hard
A. cout << fixed << setprecision(3) << setw(8) << number;
B. cout << setprecision(3) << setw(8) << number;
C. cout << setw(8) << fixed << number << setprecision(3);
D. cout << fixed << setw(3) << setprecision(8) << number;

Solution

  1. Step 1: Set fixed decimal places

    Use fixed and setprecision(3) to show 3 decimals exactly.
  2. Step 2: Set total width and alignment

    Use setw(8) to set total width to 8 characters, right-aligned by default.
  3. Final Answer:

    cout << fixed << setprecision(3) << setw(8) << number; -> Option A
  4. Quick Check:

    fixed + setprecision + setw(8) = correct format [OK]
Hint: Use fixed before setprecision, then setw for width [OK]
Common Mistakes:
  • Omitting fixed causes variable decimals
  • Placing setw before fixed and setprecision incorrectly
  • Using wrong values for setw or setprecision
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard