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

  • 您的程序应该从正常退出返回 0。其他任何内容都表示发生了错误。return 0;如果您不指定返回值, in main 是隐式的。

于 2012-07-21T15:47:28.040 回答