プログラミングクラスのC++の学習を開始しました。この「Hello World」プログラムをダウンロードしました。
#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++の方言、いわゆるpre-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++を使用してプログラミングを学習することはできますが、次の問題があるため、人間的に可能な限り回避することを強くお勧めします。
Turbo C++の代わりに使用できる最新のコンパイラ( ビール 、および 音声 など)が多数あります。これらのいくつかが含まれます:
残念なことに、一部の学校/教師は、この日でも年齢でも学生にTurbo C++の使用を強制するようです。残念ながら、これはこのコミュニティが修正できるものではありません。このような状況に陥った場合は、外部からの助けが得られないように準備してください。
「Turbo C++」は、多数のコンパイラを意味します。この質問をするときは、バージョン番号を含めることが重要です。
バージョン3.1までのBorland Turbo C++は、古典的な青い背景IDEの純粋なMS DOSコンパイラでした。これらは、C++が標準化されるずっと前の1989年から1992年の間にどこかでリリースされました。これは、1998年に標準化されました。
最も注目すべきは、標準の#include <iostream.h>
ではなく#include <iostream>
構文を使用したことですが、名前空間、テンプレートなどのC++機能の多くを網羅していませんでした。テンプレートライブラリSTLは標準の一部ではありませんそれでも、そのライブラリに関連するすべてのものは、後に標準となったものとはかなり異なっていました。
90年代後半、ボーランドは、より優れた適合性を備えたいくつかのDOS/Windowsコンパイラをリリースしました。バージョン5までは、まだC++ 98への完全な準拠に苦労していましたが、これらのWindowsバージョンはC++ 98にかなり近いものでした。
90年代後半、彼らはBorland C++ Builderを支持して「Turbo C++」という名前を廃止しました。これはIDEだけでなく、Delphiに基づく完全なRADツールでした。これらのコンパイラは、C++ 98以降のC++ 03に完全に準拠していました。
2005年頃、ボーランドはコンパイラを製品ラインの一部として廃止しました。コンパイラーは「Codegear」になり、後にEmbarcaderoになりました。その頃、彼らは「Turbo C++」という名前のBorland Builderの無料バージョンをリリースしました。このバージョンはC++ 03に完全に準拠していました。
現在、これらのコンパイラはEmbarcadero C++ Builderと呼ばれています。現在、いくつかのC++ 14で最大C++ 11をサポートしていると思います。 詳細はこちら
言うまでもなく、学生として、現代のコンパイラ以外は使用しないでください。 2018年にC++を学習するときに1991年からMS DOSコンパイラを使用するのは、単なる狂気です。それは逆効果であるだけでなく、直接有害であり、あなたを悪いC++プログラマにします。学校がTurbo C++ 3.1以前を使用することを強制している場合、学校は悪く、教師はひどく無能です。この投稿を彼らと彼らの校長にリンクしてください。
Turbo C++は非常に古いコンパイラであり、GNU C++コンパイラとは少し異なります。共有したコードはGNUコンパイラーで完全に機能しますが、Turbo C++で実行するには、いくつかの変更が必要です。
1。ヘッダーファイルの名前をiostream
からiostream.h
に変更します
2。また、「using namespace std」という行を削除します。TurboC++では必要ありません。変更されたコードは次のとおりです。
#include <iostream.h>
int main()
{
cout << "Hello, World!";
return 0;
}