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:
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.