2010-10-07 11 views
15

Ich kenne seinen einfachen Code, Wie behebe ich "System nicht im Geltungsbereich deklariert" Problem?System nicht im Umfang deklariert?

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

Heres mein Ende Nachricht:

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

Was ist 'System (" TITLE Calculator "); System ("COLOR 2"); 'soll tun, cos System ist keine eingebaute Funktion –

Antwort

11

Die Chancen stehen gut, dass Sie nicht die Header-Datei aufgenommen haben, die system() erklärt.

Um C++ - Code kompilieren zu können, der Funktionen verwendet, die Sie nicht (manuell) deklarieren, müssen Sie die Deklarationen einlesen. Diese Deklarationen werden normalerweise in so genannten Header-Dateien gespeichert, die Sie mit der Präprozessor-Direktive #include in die aktuelle Übersetzungseinheit ziehen. Da der Code nicht #include die Header-Datei, in der system() deklariert ist, schlägt die Kompilierung fehl.

Um dieses Problem zu beheben, finden Sie heraus, welche Header-Datei Sie mit der Deklaration system() und das enthält. Wie in einigen anderen Antworten erwähnt, Sie wahrscheinlich wollen #include <cstdlib>

+0

Was meinst du damit? –

+0

Siehe bearbeitete Antwort oben –

47

Sie hinzufügen müssen hinzufügen:

#include <cstdlib> 

, damit der Compiler den Prototyp für system() zu sehen.

+0

Vielen Dank! das tat den Trick –

+2

Wenn Sie C verwenden, ist es #include Doug

+0

@Doug: sicher, aber die Frage wird markiert 'C++' –

Verwandte Themen