2010-10-07 35 views
15

Tôi biết mã đơn giản của nó, Làm cách nào để khắc phục sự cố "Hệ thống không được khai báo trong phạm vi"?Hệ thống không được khai báo trong phạm vi?

#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 nhắn cuối của tôi:

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

hệ thống '(" TITLE Calculator ") là gì; hệ thống ("COLOR 2"); 'nghĩa vụ phải làm, hệ thống cos không phải là một chức năng được xây dựng –

Trả lời

11

Rất có thể bạn đã không bao gồm các tập tin tiêu đề mà tuyên bố system().

Để có thể biên dịch mã C++ sử dụng các hàm mà bạn không tự khai báo, bạn phải kéo vào các khai báo. Các khai báo này thường được lưu trữ trong các tệp tiêu đề được gọi là mà bạn kéo vào đơn vị dịch hiện tại bằng cách sử dụng chỉ thị tiền xử lý #include. Vì mã không phải là #include tệp tiêu đề trong đó system() được khai báo, quá trình biên dịch không thành công.

Để khắc phục vấn đề này, hãy tìm ra tệp tiêu đề nào cung cấp cho bạn khai báo system() và bao gồm điều đó. Như đã đề cập trong một số câu trả lời khác, nhiều khả năng bạn muốn thêm #include <cstdlib>

+0

Bạn có ý gì bởi điều đó? –

+0

Xem phản hồi đã chỉnh sửa ở trên –

47

Bạn cần phải thêm:

#include <cstdlib> 

để cho trình biên dịch để xem nguyên mẫu cho system().

+0

Cảm ơn bạn rất nhiều! đã làm thủ thuật –

+2

Nếu sử dụng C, nó là #include Doug

+0

@Doug: chắc chắn, nhưng câu hỏi được gắn thẻ 'C++' –

Các vấn đề liên quan