[解決済み] なぜ "Hello World "スタイルのプログラムはTurbo C++でコンパイルできないのでしょうか?
質問
プログラミングの授業で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++を使ってプログラミングを学ぶこともできますが、次のような問題があるため、できることなら避けることを強くお勧めします。
- 業界で使用されている一般的な言語と多少似ているが、それにもかかわらず非常に異なる言語を、正当な理由なく学習することになる。実際のソフトウェア開発のために C++ を書くつもりなら、多くを学び直さなければなりません。最新の C++ をすぐに学ぶ方がはるかに簡単です。
- Turbo C++ に関する現存する文献はありません。インターネットや書籍で見つけることができる C++ 資料のほぼ 100% は、そのままでは Turbo C++ に適用できません。わずかな修正を必要とするものもあれば、まったく使用できないものもあります。すぐに利用できるヘルプのソースは、ほとんど組み込みの Turbo C++ ヘルプだけです。
- Turbo C++ を覚えている人はほとんどいません。フォーラムで質問するときは、言語の最新バージョン向けの応答を除外するために、常に ANSI 以前の方言を使用していることを指定します。おそらく、質問をするたびに、すぐにやめて最新のコンパイラーに切り替えるよう勧めるコメントが大量に寄せられるでしょう。
多くのモダンなフリー (たとえば ビール のように、また スピーチ ) Turbo C++ の代わりに使用できるコンパイラと IDE があります。そのうちのいくつかは以下のとおりです。
- Visual C++ コミュニティ版 は、Microsoft が提供する IDE およびコンパイラです。
- コード::ブロック は軽量な IDE です。Windows では、やや古いコンパイラが付属していますが、自分で最新のコンパイラをインストールすることができます。
- Eclipse CDT は、強力なクロスプラットフォーム IDE です。独自のコンパイラは同梱されていないので、別のコンパイラをインストールする必要があります。Windowsでは、例えば MinGW .
- その他多数
- さらに、以下のような多くのオンラインコンパイラがあります。 http://ideone.com , https://www.onlinegdb.com/ および http://coliru.stacked-crooked.com/ であり、さらに その他多数 などがあります (これらは主にアイデアを試したり、非常に小さなプログラムを書いたりするのに適しています)。
- 両方とも クラスタ/LLVM と GCC は フリーソフトウェア コンパイラーで、最近のバージョンの C++ をサポートしています。
遺憾ながら、一部の学校/教師は、この時代になっても学生に Turbo C++ を使うように強制しているようです。残念ながら、これはこのコミュニティが解決できることではありません。このような状況に陥った場合、外部の助けをあまり得られないことを覚悟してください。
関連
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む