错误(ISO C ++禁止指针和整数之间的比较)[-fperemissive]

时间:2017-01-21 17:56:59

标签: c++

我的程序需要一些帮助。 我的if语句一直出错。 你能帮帮我吗? 这是我写的代码。

#include <iostream>
#include <cstdlib>
#include <iostream>
#include <string>

char carChoice;
int random_integer = rand();
int pricePerDay;
int daysOfHire;
int totalCost;
int age;
int telephoneNumber[30];
char name[30];
char address[30];
char response [4];


using namespace std;

int main()

{
    cout << "Royal Rentals" << endl;
    cout << "---------------------------------------------"<<"\n" <<endl;
    cout << "Current Stock: " <<endl;
    cout << "A - Lamborghini Aventador" <<endl;
    cout << "B - Lamborghini Huracan" <<endl;
    cout << "C - Mercedes Benz AMG GT S" <<endl;
    cout << "D - Audi R8 V10" <<endl;

cout << "Which car would you like to rent (A, B, C or D)" << "\n" << endl;
cin >> carChoice;
cout << "How many days would you like to hire the car for" << "\n" << endl;
cin >> daysOfHire;
cout << "How old are you?" << "\n" << endl;
cin >> age;


if (age < 21)
{
    cout << "Sorry but you have to over the age of 21 to hire our super cars" << "\n" << endl;
    cout << "Please close the program to hire a car suitable for your age" << "\n" << endl;
    exit (0);
}

cout << "What is your name?" << "\n" << endl;
cin >> name;
cout << "Have you got a full drivers license?" "\n" << endl;
cin >> response;

if (response == 'Y' //not "Y" but only one 'Y')
{
cout << "blah"<< "\n" <<endl;
}
else if (response == 'N')
{
cout << "blah"<< "\n" << endl;
}

cout << "what is your address?" << "\n" << endl;
cin >> address;
cout << "what is your telephone number?"<< "\n" << endl;
cin >> telephoneNumber;

if (carChoice == 'a')
{
    totalCost = daysOfHire * 685;
    cout << "You have chosen the following car for hire: Lamborghini Aventador" << endl;
    cout << "The price per day is 685.00 GBP" << endl;
    cout << "The Total Cost is: " << totalCost << endl;
    cout << "Invoice Number; " << random_integer << endl;
}
else if (carChoice == 'b')
{
    totalCost = daysOfHire * 585;
cout << "You have chosen the following car for hire: Lamborghini Huracan" << endl;
cout << "The price per day is �585.00 GBP" << endl;
cout << "The Total Cost is: " << totalCost << endl;
cout << "Invoice Number; " << random_integer << endl;
}
else if (carChoice == 'c')
{
    totalCost = daysOfHire * 485;
cout << "You have chosen the following car for hire: Mercedes Benz AMG GT S" << endl;
cout << "The price per day is �485.00 GBP" << endl;
cout << "The Total Cost is: " << totalCost << endl;
cout << "Invoice Number; " << random_integer << endl;
}
else if (carChoice == 'd')
{
    totalCost = daysOfHire * 445;
cout << "You have chosen the following car for hire: Audi R8 V10" << endl;
cout << "The price per day is �445.00 GBP" << endl;
cout << "The Total Cost is: " << totalCost << endl;
cout << "Invoice Number; " << random_integer << endl;
}
else
{
cout << "You have entered an invalid response" << endl;
}
}

声明是验证您是否拥有有效的驾驶执照,如果您没有,则程序应显示消息并关闭。如果他们这样做,那么它应该继续,以便他们可以输入其余的细节。 我错过了什么,可以纠正我的if语句。

非常感谢, Irbaaz

1 个答案:

答案 0 :(得分:0)

if (response == 'Y')

Response是一个数组,你无法将数组与整数进行比较。如果要检查整个字符串是否包含一个“Y”符号,则应检查

Strlen(response) == 1 && response[0] == 'Y'