5日連続で2つのビッグセール開催中!

【C++】「iostream.hのファイルが開けません」でコンパイルエラーが発生する原因

2 min

参考書や入門サイトを参考にプログラムを書いてコンパイルしたら「iostream.hのファイルが開けません」「ソースファイルを開けません “iostream.h”」と表示されてコンパイルできないことがあります。

なぜ参考書などを参考にして一文字も間違えていないはずなのにエラーとなってコンパイルできないでしょうか。初心者だと理由は全然わからないでしょう。

そこで今回は「iostream.hのファイルが開けません」が発生する原因や対処方法を解説します。

参考書やサイトを見て書いたはずなのになぜ?

参考書や入門サイトなどを参考して書いたはずなのに「iostream.hのファイルが開けません」と表示されてエラーに鳴る理由はこれです。

iostream.hというファイルが存在しないから

存在しないファイルを開こうとしているのですから「iostream.hのファイルが開けません」と表示されるのは当然です。開けたら逆に問題です。

これはC++の標準ライブラリの仕様変更が影響しており、C++標準ライブラリのヘッダーファイルから「.h」が削除されているのです。そのため、iostreamを読み込みたい場合は以下のようになります。

#include<iostream> //.hを付けない
int main() {
    std::cout << "Hello World!";
}

古い参考書やサイトだと#include <iostream.h>と書いていることがありますが、最新のコンパイラでは使えない書き方ですので注意してください。

他のC++標準ライブラリも同じく「.h」を付けない

ほかのC++標準ライブラリ「vector・map・sstream」などもiostreamと同じように拡張子「.h」を付けません。数十年前のかなり古いコンパイラを使っていることでもない限りincludeするC++標準ライブラリ名には拡張子が付けられていないので覚えておきましょう。

C++標準ライブラリに限定した話なので注意

これはあくまでC++の標準ライブラリに限定した話です。

ほかのライブラリやC言語のライブラリだと「stdio.h・stdlib.h・windows.h」のように拡張子がついていることが一般的なので注意しましょう。