C++ Tutorial
Class and Object
Reference
Inheritance and Derivation
Polymorphism and Virtual Functions
Operator Overloading
Template
Exception
Object Oriented Advanced
Input/Output Stream
File Operations
In C++, input and output are performed using streams. The standard input and output streams are represented by cin
and cout
, which are objects of the istream
and ostream
classes, respectively. They are part of the C++ standard library and are included in the iostream
header.
In this tutorial, we'll cover the basics of using cin
and cout
for input and output in C++.
To use cin
and cout
, include the iostream
header.
#include <iostream>
cout
:cout
stands for "console output" and is used to display data on the screen. You can use the insertion operator <<
to output data.
Example:
int main() { std::cout << "Hello, world!" << std::endl; return 0; }
In this example, std::cout
is used to output the string "Hello, world!" followed by a newline.
cin
:cin
stands for "console input" and is used to read data from the keyboard. You can use the extraction operator >>
to read data.
Example:
int main() { int age; std::cout << "Enter your age: "; std::cin >> age; std::cout << "You are " << age << " years old." << std::endl; return 0; }
In this example, std::cin
is used to read an integer from the user and store it in the age
variable.
cin
and cout
:You can use cin
and cout
together to create simple interactive programs.
Example:
int main() { std::string name; int age; std::cout << "Enter your name: "; std::getline(std::cin, name); std::cout << "Enter your age: "; std::cin >> age; std::cout << "Hello, " << name << "! You are " << age << " years old." << std::endl; return 0; }
In this example, std::getline
is used to read a full line of text, including spaces, from the user and store it in the name
variable.
std::endl
and std::flush
:std::endl
: Inserts a newline character and flushes the output buffer. This is useful when you want to ensure that the output is displayed immediately on the screen.std::flush
: Flushes the output buffer without inserting a newline character. This can be useful when you want to ensure that the output is displayed immediately, but do not need a newline.Example:
int main() { std::cout << "Processing..." << std::flush; // Perform some operation std::cout << "\rDone!" << std::endl; return 0; }
In this example, the std::flush
ensures that the "Processing..." message is displayed immediately, while the \r
character returns the cursor to the start of the line, allowing "Done!" to overwrite the previous message.
By using cin
and cout
, you can easily handle input and output in your C++ programs. These objects provide a simple and efficient way to interact with the user and display data on the screen.
How to use input and output in C++:
#include <iostream> int main() { // Output to console std::cout << "Hello, C++!" << std::endl; // Input from console int num; std::cout << "Enter a number: "; std::cin >> num; std::cout << "You entered: " << num << std::endl; return 0; }
Reading input with cin in C++:
#include <iostream> int main() { int age; std::cout << "Enter your age: "; std::cin >> age; std::cout << "You are " << age << " years old." << std::endl; return 0; }
Writing output with cout in C++:
#include <iostream> int main() { std::cout << "Hello, C++!" << std::endl; return 0; }
Formatting output with cout in C++:
#include <iostream> #include <iomanip> int main() { double pi = 3.14159; std::cout << "Value of pi: " << std::setprecision(4) << pi << std::endl; return 0; }
User input validation with cin in C++:
#include <iostream> int main() { int age; // Input validation do { std::cout << "Enter your age: "; if (!(std::cin >> age)) { std::cin.clear(); // Clear error flag std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Discard invalid input std::cout << "Invalid input. Please enter a valid age." << std::endl; } } while (age < 0); std::cout << "You entered: " << age << " years old." << std::endl; return 0; }
C++ input/output manipulators with cin and cout:
#include <iostream> #include <iomanip> int main() { double pi = 3.14159; std::cout << "Value of pi: " << std::fixed << std::setprecision(2) << pi << std::endl; return 0; }
Flushing the output buffer with cout in C++:
#include <iostream> #include <iomanip> #include <chrono> #include <thread> int main() { std::cout << "Loading... "; std::cout.flush(); // Flush the output buffer // Simulate loading std::this_thread::sleep_for(std::chrono::seconds(2)); std::cout << "Complete!" << std::endl; return 0; }
C++ file input/output using cin and cout:
#include <iostream> #include <fstream> int main() { // Writing to a file std::ofstream outputFile("output.txt"); std::cout << "Writing to file..." << std::endl; std::cout << "This is written to the file." << std::endl; outputFile << "Data written to the file." << std::endl; outputFile.close(); // Reading from a file std::ifstream inputFile("input.txt"); if (inputFile.is_open()) { std::cout << "Reading from file..." << std::endl; std::string line; while (std::getline(inputFile, line)) { std::cout << line << std::endl; } inputFile.close(); } else { std::cerr << "Error opening file." << std::endl; } return 0; }