2010-10-07 15 views
15

Sé que es un código simple, ¿Cómo arreglo el problema "Sistema no declarado en el alcance"?¿Sistema no declarado en el alcance?

#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 mi mensaje final:

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

¿Qué es 'system (" TITLE Calculator ")? sistema ("COLOR 2"); 'se supone que está haciendo, cos sistema no es una función incorporada –

Respuesta

11

Lo más probable es que no se ha incluido el archivo de cabecera que declara system().

Para poder compilar el código C++ que utiliza funciones que no declara (manualmente) usted mismo, debe ingresar las declaraciones. Estas declaraciones se almacenan normalmente en los denominados archivos de encabezado que extrae en la unidad de traducción actual utilizando la directiva de preprocesador #include. Como el código no es #include el archivo de encabezado en el que se declara system(), la compilación falla.

Para solucionar este problema, descubra qué archivo de encabezado le proporciona la declaración de system() e inclúyalo. Como se ha mencionado en varias otras respuestas, es muy probable que desee añadir #include <cstdlib>

+0

¿Qué quieres decir con eso? –

+0

Ver respuesta editada arriba –

47

Es necesario añadir:

#include <cstdlib> 

para que el compilador para ver el prototipo de system().

+0

¡Muchas gracias! que hizo el truco –

+2

Si usa C es #include Doug

+0

@Doug: claro, pero la pregunta está etiquetada 'C++' –

Cuestiones relacionadas