Working with Standard Input/Output Streams

In the C programming language, input and output operations are accomplished using standard input/output streams. These streams are pre-defined communication channels for reading and writing data to different devices. The three standard streams available are:

  1. Standard Input (stdin): This stream is responsible for accepting input from the user. By default, it reads input from the keyboard.

  2. Standard Output (stdout): It is the default output stream. The data sent to this stream is displayed on the screen or console.

  3. Standard Error (stderr): This stream is used specifically for error messages. It sends error output to the console or screen, just like the standard output.

Input Operations

To read input from the standard input stream, you can use the scanf function. It allows you to read different types of input like integers, floating-point numbers, characters, and strings.

Consider the following example that asks the user to enter two integers and then displays their sum:

#include <stdio.h>

int main() {
    int num1, num2, sum;
    printf("Enter first number: ");
    scanf("%d", &num1);
    printf("Enter second number: ");
    scanf("%d", &num2);
    sum = num1 + num2;
    printf("Sum: %d\n", sum);
    return 0;

In the above code, scanf is used to read the input values num1 and num2 from the user. The %d format specifier is used for reading integers. If the user enters 3 and 5, the program calculates their sum as 8 and displays it using printf.

Output Operations

To write output to the standard output stream, you can use the printf function. It allows you to print data in different formats, including integers, floating-point numbers, characters, and strings.

Here's an example that prints a simple welcome message to the user:

#include <stdio.h>

int main() {
    printf("Welcome to the C programming course!");
    return 0;

The message "Welcome to the C programming course!" is printed using printf.

Error Messages

Sometimes, it is necessary to display error messages to inform the user about any issues or mistakes in the program. To achieve this, you can write to the standard error stream using the fprintf function.

Consider the following code that checks if a file can be opened successfully:


int main() {
    FILE* file = fopen("example.txt", "r");
    if (file == NULL) {
        fprintf(stderr, "Error opening the file!");
        return -1;
    // Perform file operations
    return 0;

In the above code, if the fopen function fails to open the file "example.txt", it returns NULL. In such a case, an error message is written to the standard error stream using fprintf. The program then terminates with an exit code of -1 to indicate the error.


Understanding and working with standard input/output streams is crucial in C programming. They allow you to interact with the user, display output, and handle errors effectively. The scanf, printf, and fprintf functions are powerful tools for these operations. By utilizing these streams and functions, you can create more interactive and robust C programs.

© NoobToMaster - A 10xcoder company