C++ provides a powerful mechanism for formatting output using the ios class functions and flags, as well as manipulators. These tools allow you to control the appearance of your output, making it more readable and informative.
ios Class Functions and Flags
The ios class provides several member functions and flags to customize output formatting:
setf(): Sets format flags.
unsetf(): Clears format flags.
precision(): Sets the number of decimal places for floating-point numbers.
width(): Sets the minimum field width.
fill(): Sets the fill character for padding.
Format Flags:
ios::left: Left-justifies output.
ios::right: Right-justifies output.
ios::internal: Justifies output internally, placing the sign or base indicator before the number.
ios::dec: Decimal base.
ios::hex: Hexadecimal base.
ios::oct: Octal base.
ios::fixed: Fixed-point notation.
ios::scientific: Scientific notation.
ios::showpos: Shows the sign of positive numbers.
ios::showpoint: Always shows the decimal point.
Example:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double pi = 3.14159;
int num = 123;
// Set precision to 2 decimal places
cout << setprecision(2) << fixed << pi << endl;
// Set field width to 10, right-justify, and fill with zeros
cout << setw(10) << setfill('0') << right << num << endl;
// Set hexadecimal and show base
cout << hex << showbase << num << endl;
return 0;
}
Manipulators
Manipulators are functions that can be used to modify the behavior of stream objects. They often provide a more concise way to format output than using ios class functions and flags.
Some common manipulators:
setw(n): Sets the field width to n.
setfill(ch): Sets the fill character to ch.
setprecision(n): Sets the precision to n decimal places.
fixed: Sets fixed-point notation.
scientific: Sets scientific notation.
showpos: Shows the sign of positive numbers.
showpoint: Always shows the decimal point.
endl: Inserts a newline character and flushes the output stream.
flush: Flushes the output stream.
By effectively using ios class functions, flags, and manipulators, you can create well-formatted and informative output in your C++ programs.
Comments