C ++ :::无法按照Stroustrup的书中的指示调用错误

时间:2015-04-11 10:07:17

标签: c++ function identifier

我决定自己学习C ++,我已经有了一些Java经验。

在Bjarne Stroustrup的书中他说:

  

提示用户输入收件人的年龄并将其分配给    int 变量年龄。让你的程序写“我听说你刚才有一个   生日和你年龄'岁。“如果年龄是0或更低或110或   更多, 调用错误(“你在开玩笑!”)

在此之前几页,他使用错误函数如下:

  

双d1 = 2.3;

     

double d2 = d1 + 2;

     

if(d1< 0)

     

错误(“d1为否定”);

当我尝试运行我的程序时(来自Bjarnes书的练习),我得到“使用未声明的标识符'错误'”。

我试图研究我的问题,直到现在每次都给我一个解决方案,但没有用。

如果需要,这是我的Main.cpp的内容:

#include <iostream> 
using namespace std;

int main() {

    cout << "Please enter the recipients name: " << endl;
    string rname;
    getline(cin, rname);

    cout << "Ok, thank you. What is your mutual friends name: " <<endl;
    string fname;
    getline (cin, fname);

    cout << "Ok, now what gender is you friends? 'm' for male, and 'f' for female: ";
    char fsex;
    cin >> fsex;

    cout << "Fantastic, now how old is the recipient? " << endl;
    int age;
    cin >> age;
    if(age >= 0 && age <= 110){
        cout << "Thank you " << endl;
    }
    if(age <= 0 && age >= 110){
        error("You're Kidding!");
    }



    return 0; }

2 个答案:

答案 0 :(得分:2)

您必须包含标题

std_lib_facilities.h

请参阅the header definition

答案 1 :(得分:0)

此处错误Use of undeclared Identifier 'error'表示您正在尝试调用名为error的函数,但编译器不知道在哪里找到该函数。

您需要在某处声明并定义该函数,例如:

void error(char* str) {
    puts(str);
}

就像在Java中一样,如果它在任何地方都不存在,你就不能使用它。