将变量添加到作为提示的输入参数
Adding a variable to an input parameter that is a prompt
我有这个函数来验证整数输入。如您所见,有三个输入参数。(提示、下限和上限)
double getValidNumber( string prompt, double lowerLimit, double upperLimit)
{
double num;
cout << prompt;
cin >> num;
while (num < lowerLimit) {
cout << "Entry must be greater than or equal to " << lowerLimit << endl;
cout << prompt;
cin >> num;
}
while (num > upperLimit)
{
cout << "Entry must be less than or equal to " << upperLimit << endl;
cout << prompt;
cin >> num;
}
return num;
}
其中一个提示还需要包含一个变量 (maxDays),其余的是一个字符串。此调用由主
//calls function to validate year of pickup
year = getValidNumber
("Enter pick up year (2014-2024): ", 2014 , 2024);
//calls function to validate month of pickup
month = getValidNumber
("Enter pick up month (1-12): ", 1 , 12);
//calls function to get max days in month
maxDays = daysInMonth (year, month);
// If a user inputs 2014, 2 (for Feb) there are only 28 days this year
// I need the prompt to be "Enter pick up day (1-28):
//calls function to validate pickup day is within month
day = getValidNumber
("Enter pick up day (1- maxDays)", 1, maxDays);
我不确定如何将变量放入此提示中。
(因为我无法在注释中格式化代码) 有很多方法可以修复您的解决方案。一种这样的方法是,您可以编写另一个名为getValidNumberDay()
函数的函数,如下所示:
double getValidNumberDay( string prompt, double lowerLimit, double upperLimit)
{
double num;
bool choice = 0;
while (choice == 0) {
cout << prompt << upperLimit << ")";
cin >> num;
if (num < lowerLimit)
{
cout << "Entry must be greater than or equal to " << lowerLimit << endl;
cout << prompt;
cin >> num;
}
else if (num > upperLimit)
{
cout << "Entry must be less than or equal to " << upperLimit << endl;
cout << prompt;
cin >> num;
}
else
{
choice = 1;
}
}
return num;
}
然后,使用 maxDays
重写函数调用,如下所示:
day = getValidNumberDay
("Enter pick up day (1- ", 1, maxDays);
这应该可以解决问题!
我建议你修改你的函数。
double getValidNumber( string prompt, double lowerLimit, double upperLimit)
{
double num;
while (true)
{
cout << prompt;
cin >> num;
if (num < lowerLimit)
{
cout << "Entry must be greater than or equal to " << lowerLimit << endl;
}
else if (num > upperLimit)
{
cout << "Entry must be less than or equal to " << lowerLimit << endl;
}
else
{
return num;
}
}
}
相关文章:
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?
- 如何确保用户在一行上提示输入一次时输入名字和姓氏?
- 为什么 std::cin 不提示用户输入?
- 如何使用打印到 PDF 打印机在 MFC 和 CView 中以编程方式打印而不提示输入文件名?
- 编写一个程序,提示用户输入一个整数,然后输出数字的单个数字和数字的总和
- C++:跳过第一个用户输入提示
- (显示金字塔)编写一个程序,该程序提示用户输入1到15的整数并显示金字塔
- 循环不提示用户输入(C )
- C++ 编写一个程序,提示用户以数字形式输入一个人的出生日期(投掷/接球)
- 使用提示用户输入笛卡尔平面中某些点的x-y坐标(浮点类型)的函数
- 如何提示用户在C++中输入正确的电子邮件地址格式
- 输入有效的输入值后仍有提示
- 当提示输入整数值时输入字符时,为什么程序会中断
- 提示输入CreateFile的凭据
- >使用 RegCreateKeyEx() 的 Windows 可执行文件不会提示输入 UAC 管理员权限并失败?
- 防止提示输入 PEM 密码
- 如何在不提示输入密码的情况下设置计划任务
- 如何使用循环显示菜单并重新提示输入
- c++ shell命令提示输入密码
- 如何同时(!CIN >> x)) 用于重新提示输入