c++用户输入未注册
C++ user input not registering
我刚刚开始学习c++,但我很难发现错误。当我编译我的代码时,它似乎无法通过前两个if语句。一旦if语句中的语句出现在编译器屏幕上,程序就会突然停止。我试图弄清楚为什么我不能在std::cin >>
部分输入,尽管代码显示编译器上没有错误。如果有人能帮我解决这个问题,我将不胜感激。
#include <iostream>
int main(int argc, const char * argv[]) {
// insert code here...
std::string internetPlan;
float monthlyBill;
float internetPlanA = 9.95;
float internetPlanB = 13.95;
float internetPlanC = 29.99;
float amountSaved1; //amount saved comparing plan A to plan B
float amountSaved2; // amount saved comparing plan A to plan C
float amountSaved3; //amount saved comparing plan B to plan C
std::string months[12] = {"January", "February", "March", "Abril", "May", "June", "July", "August", "September", "October", "November", "December"};
std::string userInput;
int hoursOfMonth;
std::cout << "Welcome to the Ardeo Internet Service Providern";
std::cout << "The following are our internet service plansn";
std::cout << "Package A: $9.95 per month for 10 hours access. Additional hours are $2.00 per hourn";
std::cout << "Package B: $13.95 per month for 20 hours access. Additional hours are $1.00 per hourn";
std::cout << "Package C: $29.99 per month per unlimited accessn";
std::cout << "Please enter your internet plan. Enter A, B or C";
std::cin >> internetPlan;
if (internetPlan!= "A" || internetPlan!="a" || internetPlan != "B" || internetPlan!= "b" || internetPlan != "C" || internetPlan != "c") {
std::cout << "Please enter a valid plann";
std::cout << "Enter plan A, B or Cn";
std::cin >> internetPlan;
}
std::cout << "Please enter the hours you usedn";
std::cin >> hoursOfMonth;
if (hoursOfMonth < 0 || hoursOfMonth > 744) {
std::cout << "You cannot have negative hours or more than 744n";
std::cout << "Please enter the hours againn";
std::cin >> hoursOfMonth;
return hoursOfMonth;
}
std::cout << "Please enter the month";
std::cin >> userInput;
if (userInput == months[0] && hoursOfMonth > 744) {
std::cout << "Sorry you have too many hours for the month of Januraryn";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[1] && hoursOfMonth > 672){
std::cout << "Sorry too many hours for Februraryn";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[2] && hoursOfMonth > 744) {
std::cout << "Sorry too many hours for Marchn";
std::cout << "Please enter month again";
std::cin >> userInput;
} else if (userInput == months[3] && hoursOfMonth > 720) {
std::cout << "Sorry too many hours for Abriln";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[4] && hoursOfMonth > 744) {
std::cout << "Sorry too many hours for Mayn";
std::cout << "Please enter month again";
std::cin >> userInput;
} else if ( userInput == months[5] && hoursOfMonth > 720) {
std::cout << "Sorry too many hours for Junen";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[6] && hoursOfMonth > 744){
std::cout << "Sorry too many hours for Julyn";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[7] && hoursOfMonth > 744){
std::cout << "Sorry too many hours for Augustn";
std::cout << "Please enter month again";
std::cin >> userInput;
} else if (userInput == months [8] && hoursOfMonth > 720){
std::cout << "Sorry too many hours for Septembern";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[9] && hoursOfMonth > 744){
std::cout << "Sorry too many hours for Octobern";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[10] && hoursOfMonth > 720) {
std::cout << "Sorry too many hours for Novembern";
std::cout << "Please enter month again";
std::cin>> userInput;
} else if (userInput == months[11] && hoursOfMonth > 744){
std::cout << "Sorry too many hours for Decembern";
std::cout << "Please enter month again";
std::cin >> userInput;
}
// used to determine how much money would be saved
if (internetPlan == "A" || internetPlan == "a")
{
if (hoursOfMonth <= 10) {
} else {
monthlyBill = internetPlanA + ((hoursOfMonth-10)*2);
std::cout << "Your bill will be $" << monthlyBill << "n";
amountSaved1 = monthlyBill - ((internetPlanB+1*(hoursOfMonth -10)));
std::cout << "You would save $"<<amountSaved1<< " with internet plan Bn";
amountSaved2 = monthlyBill - internetPlanC;
std::cout << "You would save $" <<amountSaved2<< " with internet plan Cn";
}
} else if (internetPlan == "B" || internetPlan == "b") {
if (hoursOfMonth <= 20) {
monthlyBill = internetPlanB;
std::cout << "Your monthly bill will be $"<< monthlyBill << "n";
} else {
monthlyBill = internetPlanB + ((hoursOfMonth - 20)*1);
amountSaved3 = monthlyBill - internetPlanC;
std::cout << "Your monthly bill will be $"<<monthlyBill << "n";
std::cout << "You can save $"<<amountSaved3 << " if you switch to internet plan Cn";
}
}
return 0;
}
您对保护无效用户数据有了很好的了解。但是你的代码有点错。使用if子句不会递归代码段。您希望的内容应该类似于:
while (internetPlan!= "A" && internetPlan!="a" && internetPlan != "B" && internetPlan!= "b" && internetPlan != "C" && internetPlan != "c") {
std::cout << "Please enter a valid plann";
std::cout << "Enter plan A, B or Cn";
std::cin >> internetPlan;
}
和
while (hoursOfMonth < 0 || hoursOfMonth > 744) {
std::cout << "You cannot have negative hours or more than 744n";
std::cout << "Please enter the hours againn";
std::cin >> hoursOfMonth;
}
程序退出的问题应该是第二段return语句的结果。Return用于结束过程(带值),因此int main()结束,程序终止。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 无法将结构注册为增强几何体3D点
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 用户定义函数中的指针和输入
- 如何在C++中检查2D数组中负值的输入验证
- 如何只允许用户输入正整数
- 数学运算符未注册为输入
- Glutkeyboard输入未注册没有奇数循环帮助
- c++用户输入未注册