简体   繁体   中英

Error (ISO C++ forbids comparison between pointer and integer) [-fperemissive]

Just needed some help with my program. I keep getting an error with my if statement. Could you help me out please. This is the code I have written.

 #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; } }

The statement is to verify if you have a valid driving license, if you don't then the program should display a message and close. If they do then it should continue so they can enter the rest of their details. What am I missing from it and could some correct my if statement.

Many thanks, Irbaaz

if (response == 'Y')

Response is an array, you cannot compare an array with an integer. If you want to check that the whole string consists of one 'Y' symbol, you should check

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM