1. ホーム
  2. c++

[解決済み] なぜ "Hello World "スタイルのプログラムはTurbo C++でコンパイルできないのでしょうか?

2022-10-19 01:44:51

質問

プログラミングの授業でC++を学び始めました。このプログラムをダウンロードしました。

#include <iostream>
using namespace std;

int main() 
{
    cout << "Hello, World!";
    return 0;
}

が、Turbo C++は文句を言う。

Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM'
Error D:\HELLO.CPP 2: Declaration syntax error
Error D:\HELLO.CPP 6: Undefined symbol 'cout'

このとてもシンプルなプログラムのどこが問題なのでしょうか?どうすればこのエラーを修正できますか?

どのように解決するのですか?

このプログラムには何の問題もありません。(おそらくいくつかの文体上の問題を除いて - using namespace std は推奨されません)。問題はTurbo C++にあります。これは非常に古いソフトウェアの一部です。これはC++の方言を実装したもので、いわゆる プレ ANSI C++ を実装したもので、このミレニアムの初めには完全に使われなくなりました。C++の最初のANSI規格は1998年に発行され、その後2003年版、2011年版、2014年版、2017年版と続き、現在は2020年版が正式に発行されると予想されています。これらの規格改訂のたびに、多かれ少なかれ、この言語に大きな変化がもたらされました。

Turbo C++の場合、このようにプログラムを修正する必要があります。

#include <iostream.h>      // note the .h suffix
// using namespace std;    // Turbo C++ doesn't implement namespaces

int main() 
{
    cout << "Hello, World!";
    return 0;
}

このプログラムを見ると、現代のC++の方言とTurbo C++が受け入れている方言の差は小さいように見えるかもしれません。しかし、プログラムがより複雑になればなるほど、その差は大きくなっていくでしょう。

Turbo C++を使ってプログラミングを学ぶこともできますが、次のような問題があるため、できることなら避けることを強くお勧めします。

  1. 業界で使用されている一般的な言語と多少似ているが、それにもかかわらず非常に異なる言語を、正当な理由なく学習することになる。実際のソフトウェア開発のために C++ を書くつもりなら、多くを学び直さなければなりません。最新の C++ をすぐに学ぶ方がはるかに簡単です。
  2. Turbo C++ に関する現存する文献はありません。インターネットや書籍で見つけることができる C++ 資料のほぼ 100% は、そのままでは Turbo C++ に適用できません。わずかな修正を必要とするものもあれば、まったく使用できないものもあります。すぐに利用できるヘルプのソースは、ほとんど組み込みの Turbo C++ ヘルプだけです。
  3. Turbo C++ を覚えている人はほとんどいません。フォーラムで質問するときは、言語の最新バージョン向けの応答を除外するために、常に ANSI 以前の方言を使用していることを指定します。おそらく、質問をするたびに、すぐにやめて最新のコンパイラーに切り替えるよう勧めるコメントが大量に寄せられるでしょう。

多くのモダンなフリー (たとえば ビール のように、また スピーチ ) Turbo C++ の代わりに使用できるコンパイラと IDE があります。そのうちのいくつかは以下のとおりです。

  1. Visual C++ コミュニティ版 は、Microsoft が提供する IDE およびコンパイラです。
  2. コード::ブロック は軽量な IDE です。Windows では、やや古いコンパイラが付属していますが、自分で最新のコンパイラをインストールすることができます。
  3. Eclipse CDT は、強力なクロスプラットフォーム IDE です。独自のコンパイラは同梱されていないので、別のコンパイラをインストールする必要があります。Windowsでは、例えば MinGW .
  4. その他多数
  5. さらに、以下のような多くのオンラインコンパイラがあります。 http://ideone.com , https://www.onlinegdb.com/ および http://coliru.stacked-crooked.com/ であり、さらに その他多数 などがあります (これらは主にアイデアを試したり、非常に小さなプログラムを書いたりするのに適しています)。
  6. 両方とも クラスタ/LLVM GCC フリーソフトウェア コンパイラーで、最近のバージョンの C++ をサポートしています。

遺憾ながら、一部の学校/教師は、この時代になっても学生に Turbo C++ を使うように強制しているようです。残念ながら、これはこのコミュニティが解決できることではありません。このような状況に陥った場合、外部の助けをあまり得られないことを覚悟してください。