-6

私のdevcppが私のプログラムをコンパイルしない理由を見つけるのを手伝ってください

#include <windows.h>
#include <iostream.h>

int main()
{
  using namespace std;
  cout << "Hello There please input A number" << endl;
int number;
  cin >> number;
  if( number >= 2 && number <= 2 )
   {
     cout << "You have input the wrong number haha" << endl;
  } 
  else
  {
    cout << "Wow how'd you guessed it?" << endl;
 }

 system("PAUSE>NUL");
 return 23;
}
4

1 に答える 1

3

それを取得してコンパイルすると、単純なエラーが発生します。

致命的なエラー: iostream.h: そのようなファイルまたはディレクトリはありません

これは自明です。その理由は、拡張子または同等<iostream>のものがない ためです。.h行を次のように変更します。

#include <iostream>

コンパイル済みであることの証明 (以下の点は含まれませんが、ideone に関係のないものは削除されます): http://ideone.com/WIDjR

それはさておき:

  • 必要ありませんwindows.hsystemの一部ですcstdlib

  • using namespace std;多くの場合、良いことよりも悪いことをします。などに固執することをお勧めしますstd::cout。内部mainは最悪の場所ではありませんが、それにもかかわらず、入るのに大きな習慣ではありません.

  • if( number >= 2 && number <= 2 )書き込みと実行の両方で論理エラーです。より単純な形式は になりますif (number == 2)が、出力に基づく正しい形式は になりますif (number != 2)。2 以外のすべての数値が正しい推測ではありません。

  • system ("PAUSE")悪い。それを行うかどうか、またはそれが存在するかどうかさえわかりませんpause.exe。誰かがpause.exe自分のハード ドライブをフォーマットする を持っている可能性があり、それを実行したのはあなたの責任です。一貫した動作のためcin.get()に、コンパイラが入力バッファをクリアするために実装している場合は、 orの形式を使用します。の動作は保証されていないことcin.sync(); cin.get();に注意してください。cin.sync()

  • プログラムは、通常の終了から 0 を返す必要があります。それ以外は、エラーが発生したことを意味します。return 0;in main は、戻り値を指定しない場合は暗黙的です。

于 2012-07-21T15:47:28.040 に答える