Welcome to the fascinating world of C++! In this lesson, we'll dive into formatting output, a crucial aspect of programming that allows you to display the results of your C++ programs on the screen. Let's get started!
In C++, we use the std::cout function to output text to the console. The std::cout is part of the standard C++ library and is an ostream object that represents the standard output stream.
#include <iostream> // This header file contains the definition for std::cout
int main() {
std::cout << "Hello, World!"; // Prints "Hello, World!" to the console
return 0;
}In the above example, we include the iostream header file, which contains the definition for std::cout. Inside the main() function, we use std::cout to print "Hello, World!" to the console.
While std::cout can print basic text, it also supports various formatting options to display data more effectively. Let's explore some of them.
\n šThe \n is a special character that signifies a new line. When used within std::cout, it forces the output to start from the beginning of the next line.
#include <iostream>
int main() {
std::cout << "Line 1\n";
std::cout << "Line 2\n";
return 0;
}The output will be:
Line 1
Line 2
\t šThe \t is a special character that signifies a tab. It is used to increase indentation.
#include <iostream>
int main() {
std::cout << "Indented Text\t"; // Prints "Indented Text " (with four spaces)
return 0;
}std::endl š”std::endl is a manipulator that inserts a newline character (\n) and flushes the output buffer. This means it forces the output to appear immediately on the screen.
#include <iostream>
int main() {
std::cout << "Line 1" << std::endl;
std::cout << "Line 2" << std::endl;
return 0;
}The output will be:
Line 1
Line 2
Notice that when we use \n without std::endl, the output appears on the same line in some cases. This is because the output buffer may not be flushed, and the newline character is not displayed immediately.
C++ also supports advanced output formatting using placeholders ({}) and conversion specifiers.
Placeholders are used to indicate where a value should be inserted in the output. Conversion specifiers define the type of the value to be inserted.
#include <iostream>
#include <string>
#include <vector>
int main() {
std::string name = "John Doe";
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::cout << "Name: " << name << std::endl; // Prints "Name: John Doe"
for (const auto& number : numbers) {
std::cout << "Number: " << number << std::endl; // Prints "Number: 1", then "Number: 2", and so on
}
return 0;
}In the above example, we use placeholders to insert values of different types (std::string and int) into the output. The conversion specifier {} tells C++ to use placeholders.
We can format values using conversion specifiers such as d (decimal), f (floating-point), and x (hexadecimal).
#include <iostream>
#include <iomanip> // This header file contains additional formatting manipulators
int main() {
int value = 123456;
float number = 123.456f;
std::cout << "Decimal: " << value << std::endl; // Prints "Decimal: 123456"
std::cout << std::setw(10) << std::left << "Left-aligned, width 10: " << value << std::endl; // Prints "Left-aligned, width 10: 123456"
std::cout << "Right-aligned: " << std::setw(10) << std::right << value << std::endl; // Prints "Right-aligned: 123456"
std::cout << "Floating-point: " << number << std::endl; // Prints "Floating-point: 123.456000"
std::cout << std::fixed << std::setprecision(2) << "Fixed, 2 decimal places: " << number << std::endl; // Prints "Fixed, 2 decimal places: 123.46"
return 0;
}In the above example, we use the std::setw manipulator to set the width of the output, and std::left and std::right manipulators to left-align and right-align the output, respectively. We also use the std::fixed manipulator to print floating-point numbers with fixed-point notation and the std::setprecision manipulator to set the number of decimal places.
What does the `\n` character represent in C++?
What does `std::endl` do in C++?
What is a placeholder in C++?