C++ Basic Input And Output Cin Cout Cerr Clog - C++ Programming Tutorial
C++ Course / C++ Basics / C++ Basic Input And Output Cin Cout Cerr Clog

C++ Basic Input And Output Cin Cout Cerr Clog

BLUF: Mastering C++ Basic Input And Output Cin Cout Cerr Clog is a critical step in becoming a proficient C++ developer. This lesson provides a deep dive into the syntax, performance considerations, and real-world applications of this concept.
Key Performance Insight: C++ Basic Input And Output Cin Cout Cerr Clog

C++ is renowned for its efficiency. Learn how C++ Basic Input And Output Cin Cout Cerr Clog enables low-level control and high-performance computing in the tutorial below.

C++ input/output (I/O) operations rely on the stream concept. A stream denotes a sequence of bytes or data flow, categorized as either input or output. This mechanism enhances the efficiency of programs.

Output Operations: When data is moved from primary memory to an external device such as a printer, screen, or network link, it is categorized as an output operation.

  • Output Stream (ostream): This functionality is employed to send output to peripherals like screens.

When data bytes move from an input device such as keywords into the primary memory of the system, this process is referred to as an input operation.

  • Input Stream (istream) is employed for fetching input from sources like keyboards.
  • C++ Basic Input and Output Example

Here's a simple program demonstrating basic I/O:

Example

Example

#include <iostream>

using namespace std;

int main() {

    int age;

    float height;

    string name;

    cout << "Enter your name: ";

    cin >> name;

    cout << "Enter your age: ";

    cin >> age;

    cout << "Enter your height in meters: ";

    cin >> height;

    cout << "\n--- User Details ---\n";

    cout << "Name: " << name << endl;

    cout << "Age: " << age << " years" << endl;

    cout << "Height: " << height << " meters" << endl;

    return 0;

}

Output:

Output

Enter your name: Alice

Enter your age: 28

Enter your height in meters: 5.8

--- User Details ---

Name: Alice

Age: 28 years

Height: 5.8 meters

Explanation:

In this instance, the code utilizes cin to fetch user input from the terminal. Following that, the program accommodates different data types such as strings, integers, and floating-point numbers from multiple inputs. The output format is dependent on cout to make use of insertion operators.

Understanding Streams in C++

In C++ , Streams function as abstractions that provide access to devices, which serve for reading or writing data. The iostream library introduces four standard stream elements, which include:

  • cin (Standard Input): It reads input from the keyboard.
  • cout (Standard Output): It writes output to the screen.
  • cerr: Program errors are written to the screen through cerr (Standard Error).
  • clog: The clog stream buffer will write log messages to standard logging channels.
  • How does Streams Work in C++?

Streams in C++ function by utilizing operators:

The

  • operator (known as the Extraction Operator) is paired with cin to handle input operations.
  • C++ I/O Header Files and Their Functions

In C++, preexisting functions and declarations are accessible via header files, enabling us to perform particular actions without the need to create fresh code entirely. Several key header files for handling input/output operations in C++ contain functions designed to efficiently execute input and output operations. Now, we will delve into the primary header files for input/output operations:

Header File Function and Description
_PRESERVE22__ It is used to define thecout, cin and cerrobjects, which correspond to standard output stream, standard input stream and standard error stream, respectively.
_PRESERVE23__ It is used to declare services useful for performing formatted I/O, such assetprecision and setw.
_PRESERVE24__ It is used to declare services for user-controlled file processing.

1. iostream:

It is a crucial header file for handling input and output tasks in C++. It represents the "input-output" stream. When dealing with different types of input and output streams, the iostream header file incorporates the istream class (for input streams) and the ostream class (for output streams), along with its subclasses ifstream, ofstream, and stringstream.

The cin (standard input) and cout (standard output) are the most commonly used classes within this header file, enabling the reading of user input and presenting output on the console.

C++ Iostram Example:

Let's consider an example to showcase the iostream header file in C++.

Example

Example

#include <iostream>  

using namespace std;  

int main() {  

int num;  

cout << "Enter a number: ";  

cin >> num;  

cout << "You entered: " << num << endl;  

return 0;  

}

Output:

Output

Enter a number: 42

You entered: 42

Explanation:

Through the iostream library, individuals have the capability to conduct input and output tasks using cin as the input stream and cout as the output stream. The cin >> num syntax allows for retrieving user input, while cout << num is employed for displaying output to the console.

C++ Standard Input Stream Example:

Let's examine a basic illustration of a standard input stream (cin) in the C++ programming language.

Example

Example

#include <iostream>  

using namespace std;  

int main( ) {  

  int age;  

   cout << "Enter your age: ";  

   cin >> age;  

   cout << "Your age is: " << age << endl;  

}

Output:

Output

Enter your age: 22

Your age is: 22

Explanation:

The cin object is a member of the istream class, facilitating the reception of input from the console. The >> extraction operator permits the program to assign user input values to variables. When the cin >> age function is used, it captures an integer provided by the user and saves it in the age variable.

Standard End Line (endl)

The endl object is predefined within the ostream class and serves the purpose of adding a fresh line of characters while also flushing the stream.

C++ Standard End Line Example:

Let's explore a basic illustration of a standard newline character (endl) in C++.

Example

Example

#include <iostream>  

using namespace std;  

int main( ) {  

cout << "C++ Tutorial";     

cout << " Logic </> practice"<<endl;   

cout << "End of line"<<endl;   

}

Output:

Output

C++ Tutorial Logic </> practice

End of line

Explanation:

The ostream class manipulator endl appends a newline character and flushes the buffer to display the output promptly. When "End of line" << endl is used in the code snippet, "End of line" will be shown, followed by moving to the next line.

Un-buffered Standard Error Stream (cerr)

The cerr abbreviation represents "standard error". This stream is unbuffered, indicating that any data sent to cerr is promptly shown on the console without delay. It is commonly employed for showcasing error messages and diagnostic details that require immediate display to prevent buffering-induced delays.

C++ Standard Error Stream without Buffering (cerr) Example:

Let's explore a basic example of an Un-buffered Standard Error Stream (cerr) in C++.

Example

Example

#include <iostream>  

int main() {  

std::cerr << "This is an error message." << std::endl;  

return 0;  

}

Output:

Output

This is an error message.

Explanation:

The output stream cerr functions as an immediate error message stream that does not buffer the output. It showcases error messages directly without delay. An example of utilizing this feature is by displaying an error message using the statement std::cerr << "This is an error message.".

Buffered Standard Error Stream (clog):

The clog abbreviation represents "common log." It functions as a buffered stream, much like cout. Typically, it is employed for composing informative or diagnostic messages that are less critical than errors. Buffering can enhance performance, particularly when outputting numerous messages.

C++ Buffered Standard Error Stream:

Let's examine an example of a Buffered Standard Error Stream (cerr) in C++.

Example

Example

#include <iostream>  

int main() {  

std::clog << "This is an Logic </> practice message." << std::endl;  

return 0;  

}

Output:

Output

This is an CppTutorialech message.

Explanation:

The clog class establishes a buffered stream designed for logging and informational messages. This enhances program efficiency by reducing system overhead. It leverages a standard clog stream to display informational messages.

C++ Input and Output Operation Example:

Let's consider a demonstration to clarify the Input/Output Function in C++.

Example

Example

#include <iostream>

#include <fstream>

using namespace std;

int main() {

    ofstream outfile("example.txt");

    outfile << "Hello, File I/O!";

    outfile.close();

    ifstream infile("example.txt");

    string content;

    getline(infile, content);

    cout << content << endl;

    infile.close();

    return 0;

}

Output:

Output

Hello, File I/O!

Explanation:

The code demonstrates the process of reading and writing file data by using both ifstream and ofstream. The getline method retrieves a complete line from the content of the file.

Features of Input and Output:

Several features of input and output are as follows:

  • The system performs type checking to maintain proper data formats when entering and retrieving information.
  • The input and output system provides formatting tools that enhance document readability. Overloaded Operators: It simplifies the syntax. Error Handling: It detects errors in input/output operations. Chaining: It allows multiple operations in a single statement.
  • Overloaded Operators: It simplifies the syntax.
  • Error Handling: It detects errors in input/output operations.
  • Chaining: It allows multiple operations in a single statement.
  • Conclusion:

In summary, I/O streams in C++ offer users comprehensive toolkits for adaptable and user-friendly input and output operations. Crafting interactive and data-centric C++ applications necessitates a thorough grasp of streams alongside formatted I/O and file management.

C++ Basic Input/Output Multiple Choice Questions:

  1. Which of the following statements is true about the cin object in C++?
  • cin can only read integer values.
  • cin can read input until a space is encountered.
  • cin can read entire lines, including spaces.
  • cin requires an explicit conversion for reading integers.
  1. What happens if we use cin to input a string that contains spaces?
  • The entire string is stored, including spaces.
  • Only the first word before a space is stored.
  • The program crashes.
  • Spaces are automatically removed before storing the input.
  1. Which of the following statements about C++ input and output operations is true?
  • The cin operates is an output stream to demonstrate screen-based data display.
  • The input stream cout retrieves data from keyboard inputs.
  • Standard I/O operations receive support from the iostream library.
  • The << operator functions as the extraction means for user input.
  1. What is the main purpose of the iomanip library in C++?
  • Provides advanced mathematical operations
  • Handles file I/O operations
  • Formats input and output
  • Handles memory management
  1. What happens when we use the endl manipulator in C++?
  • The program execution terminates when you use this command.
  • The manipulator sends the cursor to the new line position and immediately clears the output buffer contents.
  • It clears the screen
  • It reads input from the user

b) The manipulator shifts the cursor to a fresh line position and promptly empties the output buffer.

Input Required

This code uses input(). Please provide values below:

Logic Practice
Install Logic Practice
Add to home screen for a faster app-like experience