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



只是需要一些关于我的程序的帮助。我的 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 语句。

非常感谢,伊尔巴兹

if (response == 'Y')

响应是一个数组,不能将数组与整数进行比较。如果要检查整个字符串是否由一个"Y"符号组成,则应检查

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

最新更新