C - Purpose of stdio.h

In C, stdio.h stands for Standard Input/Output Header.
It’s part of the C standard library and provides functions, macros, and type definitions for input/output operations — such as reading from the keyboard, writing to the screen, and working with files.


1. Purpose of stdio.h

Without including stdio.h, you cannot use many common I/O functions like printf(), scanf(), gets(), puts(), fopen(), etc.
When you include it with:

#include <stdio.h>

you tell the compiler to pull in the declarations (function prototypes, macros, types) for standard I/O so that:

  • Your code compiles without implicit declaration warnings/errors.

  • The compiler knows the correct parameter types and return types for I/O functions.


2. Features Provided by stdio.h

a) Console Input/Output Functions

  • Output functions

    • printf() – formatted output to the console

      printf("Hello %s", name);
      
    • puts() – writes a string followed by a newline

    • putchar() – writes a single character

  • Input functions

    • scanf() – formatted input from the console

      scanf("%d", &age);
      
    • gets() (deprecated) – reads a line of text (unsafe, replaced by fgets())

    • getchar() – reads a single character from input


b) File Input/Output Functions

stdio.h defines functions for reading and writing files via the FILE data type:

  • fopen() – open a file

  • fclose() – close a file

  • fprintf() – formatted output to a file

  • fscanf() – formatted input from a file

  • fgets() / fputs() – string I/O for files

  • fread() / fwrite() – binary I/O

  • feof() – detect end of file

  • ferror() – check for file errors


c) Important Macros

  • EOF – End-of-file indicator (-1 usually)

  • NULL – Null pointer constant

  • stdin, stdout, stderr – standard I/O streams


d) Data Types

  • FILE – represents a file stream

  • size_t – unsigned integer type for sizes

  • fpos_t – type for file position indicators


3. Why It’s Important

  • Central to almost all C programs that need user interaction or file handling.

  • Ensures type safety in I/O function calls.

  • Provides a consistent interface across platforms.


4. Simple Example

#include <stdio.h>

int main() {
    char name[20];
    printf("Enter your name: ");
    scanf("%19s", name); // safe: limits input to 19 chars
    printf("Hello, %s!\n", name);

    FILE *fp = fopen("data.txt", "w");
    if (fp != NULL) {
        fprintf(fp, "Name: %s\n", name);
        fclose(fp);
    }
    return 0;
}

This example uses:

  • printf() and scanf() for console I/O

  • FILE, fopen(), fprintf(), and fclose() for file I/O.