What is the difference between iostream and iostream.h in C++?



Both <iostream> and <iostream.h> are the header files of C++ language. The .h extension was common in older, non-standard implementations like Turbo C++. The <iostream.h> has been deprecated in modern C++ compilers and the <iostream> became part of the C++ standard starting from the 1998 ANSI/ISO standard.

The <iostream.h> Header File

The iostream.h header file was part of the early 1990s I/O streams library, developed at AT&T for use with early C++. At that time, C++ was not yet standardized. The purpose of this header file is used to perform the input-output operations.

Example

Following is an example of iostream.h as per Turbo C compiler:

#include<iostream.h>
#include<conio.h> 

void main() {
   // Clears the screen 
   clrscr();
   int str = "Tutorialspoint";   
   cout << str << endl;
	
   // wait for key press
   getch(); 
}

The above code produces the following result:

Tutorialspoint

Note: In user input case, you can use cin >> var_name; to take an input from the user.

The <iostream> Header File

The iostream header file is part of the C++ standard library, it was first introduced in 1998 and provides the definition of standard Input/Output related streams and functions.

By using this header, you can use a standard namespace (std) that represents a group of standard library components, classes, functions, and other identifiers.

Example

In this example, we use iostream header file to see its standard usage.

#include<iostream>
using namespace std;

int main() {
   string str = "Tutorialspoint";
   cout << str << endl;
   return 0;
}

The above code produces the following result:

Tutorialspoint

Difference Between <iostream> and <iostream.h>

Here, we provide the tabular differences of both header files based on standardized and non-standardized as follows:

<iostream.h> <iostream>
.h is the extension of the header file for ANSI standard. There is no need for an extension for modern C++ standards.
There is no use of std namespace. There is a use of std namespace.
It is used in older compilers like Turbo C. The modern compiler recommended this for C++ development.
The implementation of this header file is based on AT&T C++ streams. This header file was implemented based on the C++ standard in 1998.
It may lack an error-handling mechanism. It uses standard error handling (std::ios::failure).
This header file shows inconsistencies with function overloading. It supports proper function overloading as per C++ standard.
Updated on: 2025-06-16T17:07:37+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements