Система не объявлена ​​в объеме? - PullRequest
18 голосов
/ 08 октября 2010

Я знаю его простой код: как мне решить проблему «Система не объявлена ​​в области действия»?

#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Настройки \ Nilo \ Мои документы \ Work \ Testing \ main.cpp || В функции 'int main ()': |C: \ Documents and Settings \ Nilo \ Мои документы \ Work \ Testing \ main.cpp | 8 | ошибка: 'system' не была объявлена ​​в этой области ||

| === Сборка завершена: 1 ошибка, 0 предупреждений === |

Ответы [ 2 ]

54 голосов
/ 08 октября 2010

Вам нужно добавить:

 #include <cstdlib>

, чтобы компилятор увидел прототип для system().

13 голосов
/ 08 октября 2010

Скорее всего, вы не включили заголовочный файл, который объявляет system().

Чтобы иметь возможность компилировать код C ++, использующий функции, которые вы (не) не объявляете сами, вы должны включить декларации. Эти объявления обычно хранятся в так называемых заголовочных файлах, которые вы вводите в текущий модуль перевода, используя директиву препроцессора #include. Поскольку код не #include заголовочный файл, в котором объявлено system(), компиляция не удалась.

Чтобы решить эту проблему, выясните, какой заголовочный файл предоставляет вам объявление system() и включите его. Как уже упоминалось в нескольких других ответах, вы, скорее всего, захотите добавить #include <cstdlib>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...