Sistemul nu este declarat în domeniul de aplicare? (Programare, C++, Erori De Compilare)

Nilo Cortex a intrebat.

Știu că este un cod simplu, Cum pot rezolva problema „System not declared in scope”?

#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 mesajul meu final:

C:Documents and SettingsNiloMy DocumentsWorkTestingmain.cpp|||În funcția ‘int main()’:| C:Documents and SettingsNiloMy DocumentsWorkTestingmain.cpp|8|error: ‘system’ nu a fost declarat în acest domeniu||||

|=== Construire finalizată: 1 erori, 0 avertismente ===|

Comentarii

  • ce ar trebui să facă ` system („TITLE Calculator” ); system („COLOR 2” );`, deoarece system nu este o funcție încorporată –  > Por Greg Domjan.
2 răspunsuri
Paul R

Trebuie să adăugați:

 #include <cstdlib>

pentru ca compilatorul să vadă prototipul pentru system().

Comentarii

  • Dacă folosiți C este #include <stdlib.h> –  > Por Doug.
  • @Doug: sigur, dar întrebarea este etichetată C++ –  > Por Paul R.
  • @PaulR Totuși, este util pentru o grămadă de oameni. 🙂 –  > Por sscirrus.
Timo Geusch

Sunt șanse să nu fi inclus fișierul header care declară system().

Pentru a putea compila cod C++ care utilizează funcții pe care nu le declarați (manual), trebuie să introduceți declarațiile. Aceste declarații sunt stocate în mod normal în așa-numitele fișiere de antet pe care le introduceți în unitatea de traducere curentă utilizând funcția #include directiva preprocesor. Deoarece codul nu este #include fișierul de antet în care system() este declarat, compilarea eșuează.

Pentru a remedia această problemă, aflați care este fișierul de antet care vă oferă declarația de system() și includeți-l pe acela. După cum s-a menționat în alte câteva răspunsuri, cel mai probabil doriți să adăugați #include <cstdlib>