在执行时进行输入验证
Input validation in do-while
我遇到了输入错误的问题。我的输入已验证,但我的错误消息"范围无效。请输入范围 0-100:",如果输入无效,则不显示。
下面是一个示例:
Please Enter Grade 1: 101 (It does not accept input)
Please Enter Grade 1: 321 (It does not accept input)
而不是显示:
Please Enter Grade 1: 101 (It does not accept input)
Invalid Rage. Please Enter Range 0-100.
Please Enter Grade 1:
这是我的代码:
for(vector<double>::size_type i = 0; i < 15; i++)
{
do
{
cout << "Please Enter Grade "<< i + 1 <<": " << flush;
cin >> gradesVector[i];
}
while(gradesVector[i] < 0.0 || gradesVector[i] > 100.0);
{
cout << "Invalid Rage. Please Enter Range 0-100:n";
cout << "Please Enter Grade "<< i + 1 <<": " << flush;
cin >> gradesVector[i];
}
}
您的while()
条件应该是
while(gradesVector[i] < 0.0 || gradesVector[i] > 100.0)
并使用此代码
for(vector<double>::size_type i = 0; i < 15; i++)
{
int c=0;
do
{
if(c!=0) //checking that we didnt entered loop for first time
cout << "Invalid Rage. Please Enter Range 0-100:n";
cout << "Please Enter Grade "<< i + 1 <<": " << flush;
cin >> gradesVector[i];
c++;
}
while(gradesVector[i] < 0.0 || gradesVector[i] > 100.0);
}
您正在将do
结构与while
混合。使用其中之一,而不是同时使用两者。此外,您在while
中的测试也没有意义。它不能同时越来越少。编辑到以下内容,它应该可以工作
for(vector<double>::size_type i = 0; i < 15; i++)
{
cout << "Please Enter Grade "<< i + 1 <<": " << flush;
cin >> gradesVector[i];
while(gradesVector[i] < 0.0 || gradesVector[i] > 100.0); // or not and
{
cout << "Invalid Rage. Please Enter Range 0-100:n";
cout << "Please Enter Grade "<< i + 1 <<": " << flush;
cin >> gradesVector[i];
}
}
你的 while 条件不对。
std::vector<double> gradesVector;
gradesVector.reserve(15);
for (std::vector<double>::size_type i = 0; i < 15; i++)
{
double grade;
std::cout << "Please Enter Grade " << i + 1 << ": " << std::flush;
std::cin >> grade;
while (grade < 0.0 || grade > 100.0)
{
std::cout << "Invalid Range. Please Enter Range 0-100:n";
std::cin >> grade;
}
gradesVector.push_back(grade);
}
此外,我只会在等级有效后将其添加到向量中。
相关文章:
- 正在尝试了解输入验证循环
- 如何在C++中检查2D数组中负值的输入验证
- cin 的十进制输入验证?
- 输入验证以筛选出字符、字符串和一系列整数
- 输入验证将数字放入向量中
- 在C++中使用字符数组进行输入验证
- 在C++中使用字符数组进行用户输入验证
- C++ 中字符数组的输入验证
- 检查节点的输入验证的整数
- 如何让我的程序在输入验证的基础上读取素数
- C++ 用户输入验证无法正常工作
- 程序终止,而不是继续整数输入验证循环
- 使用REGEX进行电子邮件输入验证C
- C++:输入验证器函数
- 将用户输入验证为整数:用户必须两次输入输入
- C 输入验证
- C :对输入验证函数进行编程的性能影响可以对其进行编程,而每次都可以将其编程
- 使用模板函数进行通用输入验证
- 为什么用于输入验证的 while 循环要么完全跳过循环,要么不考虑错误的输入
- 仅 C++ 字母和空格输入验证