2010-10-07 16 views
15

Znam jej prosty kod, Jak naprawić problem "System not reported in scope"?System nie został zadeklarowany w zakresie?

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

Herezje mojego przesłania końcowego:

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

czym jest "system (" TITLE Calculator "); system ("KOLOR 2"); 'powinien działać, system cos nie jest wbudowaną funkcją –

Odpowiedz

11

Są szanse, że nie zostały uwzględnione w pliku nagłówka, który deklaruje system().

Aby móc skompilować kod w C++, który używa funkcji, których nie deklarujesz (ręcznie), musisz pobrać deklaracje. Deklaracje te są zwykle przechowywane w tak zwanych plikach nagłówkowych, które można pobrać do bieżącej jednostki tłumaczeniowej przy użyciu dyrektywy preprocesora #include. Ponieważ kod nie zawiera #include pliku nagłówkowego, w którym zadeklarowano system(), kompilacja kończy się niepowodzeniem.

Aby rozwiązać ten problem, sprawdź, który plik nagłówkowy zawiera deklarację system() i dołącz to. Jak wspomniano w kilku innych odpowiedzi, prawdopodobnie chcesz dodać #include <cstdlib>

+0

Co masz na myśli? –

+0

Zobacz edytowaną odpowiedź powyżej –

47

Trzeba dodać:

#include <cstdlib> 

celem dla kompilatora, aby zobaczyć prototyp dla system().

+0

Dziękuję bardzo! to się udało –

+2

Jeśli używasz C, to jest #include Doug

+0

@Doug: jasne, ale pytanie jest oznaczone jako 'C++' –

Powiązane problemy