2010-10-07 112 views
15

我知道它的簡單代碼,我該如何解決「系統未在範圍內聲明」問題?系統未在範圍內聲明?

#include<iostream> 
using namespace std; 

int main(void) 
{ 
    system ("TITLE Calculator"); 
    system ("COLOR 2"); 
    char cChar; 
    double dfirstnumber; 
    double dsecondnumber; 
    char cDoagain; 

    do 
    { 
     system("CLS"); 
     cout << "Please enter the first number you would like to use."<< endl; 
     cin >> dfirstnumber; 
     cout<< "Please enter the operation you would like to perform." << " (+,-,*,or /)" << endl; 
     cin >> cChar; 
     cout<< "Please enter the second number you would like to use." << endl; 
     cin >> dsecondnumber; 

     switch (cChar) 
     { 
      case '+': 
       cout << "The answer is: " << dfirstnumber << "+" << dsecondnumber << "=" << 
       (dfirstnumber + dsecondnumber) << endl; 
       break; 
      case '-': 
       cout << "The answer is: " << dfirstnumber << "-" << dsecondnumber << "=" << 
       (dfirstnumber - dsecondnumber) << endl; 
       break; 
      case '*': 
       cout << "The answer is: " << dfirstnumber << "*" << dsecondnumber << "=" << 
       (dfirstnumber * dsecondnumber) << endl; 
       break; 
      case 'x': 
       cout << "The answer is: " << dfirstnumber << "x" << dsecondnumber << "=" << 
       (dfirstnumber * dsecondnumber) << endl; 
       break; 
      case 'X': 
       cout << "The answer is: " << dfirstnumber << "X" << dsecondnumber << "=" << 
       (dfirstnumber * dsecondnumber) << endl; 
       break; 
      case '/': 
       if(dsecondnumber == 0){ 
       cout<< "That is an invalid operation." << endl;} 
       else{ 
       cout << "The answer is: " << dfirstnumber << "/" << dsecondnumber << "=" << 
       (dfirstnumber/dsecondnumber) << endl; 

     } 
       break; 
       default: 
        cout << "That is an invalid operation." << endl; 
        break; 
    } 
       cout << "Would you like to start again? (Y/N)" << endl; 
       cin >> cDoagain; 
    }while (cDoagain == 'Y' or cDoagain == 'y'); 
    system("PAUSE"); 
    return 0; 
} 

繼承人我最終的消息:

C:\Documents and Settings\Nilo\My Documents\Work\Testing\main.cpp||In function 'int main()':| C:\Documents and Settings\Nilo\My Documents\Work\Testing\main.cpp|8|error: 'system' was not declared in this scope||

|=== Build finished: 1 errors, 0 warnings ===|

+0

什麼是'system(「TITLE Calculator」); 系統(「COLOR 2」);'應該這樣做,cos系統不是一個內置函數 – 2010-10-07 21:20:50

回答

11

機會是你已經不包含聲明system()頭文件。

爲了能夠編譯使用您不需要(手動)聲明自己的函數的C++代碼,您必須引入聲明。這些聲明通常存儲在所謂的頭文件中,您可以使用#include預處理器指令將其拉入當前的翻譯單元。由於代碼不包含system()的頭文件,編譯失敗。

要解決此問題,請找出哪個頭文件爲您提供了system()聲明幷包含該聲明。正如在其他幾個答案中提到,您很可能希望增加#include <cstdlib>

+0

你是什麼意思? – 2010-10-07 21:11:52

+0

查看上面編輯的回覆 – 2010-10-07 21:18:10

47

您需要添加:編譯器看到原型system()

#include <cstdlib> 

秩序。

+0

非常感謝!訣竅 – 2010-10-07 21:20:00

+2

如果使用C,它是#include Doug 2014-11-05 20:30:56

+0

@Doug:當然,但問題被標記爲'C++' – 2014-11-05 20:50:09