为什么程序没有编译?

时间:2012-07-21 15:34:51

标签: c++

请帮我看看为什么我的dev c ++没有编译我的程序

#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;
}

1 个答案:

答案 0 :(得分:3)

接受并编译它给了我一个简单的错误:

fatal error: iostream.h: No such file or directory

这是不言自明的。原因是<iostream>没有扩展名或.h等效名称。将行更改为:

#include <iostream>

证明它编译(不包括以下几点,但删除与ideone无关的内容):http://ideone.com/WIDjR

除此之外:

  • 您不需要windows.hsystemcstdlib的一部分。

  • 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()的形式,或者,如果您的编译器实现它以清除输入缓冲区cin.sync(); cin.get();以获得一致的行为。请注意cin.sync()的行为无法保证。

  • 您的程序应该从正常退出返回0。其他任何事情都意味着发生了错误。如果您未指定返回值,则main中的return 0;是隐式的。