向量的输入验证C++
Input Validation for Vectors C++
我的do-while循环的输入验证有问题。我的 do-while 循环只验证所有其他输入
下面是一个示例:
Please Enter Grade 1: 101 (It does not accept input)
Invalid Rage. Please Enter Range 0-100.
Please Enter Grade 1: 101 (It accapts this input)
Please Enter Grade 2: 101 (It does not accept input)
Invalid Rage. Please Enter Range 0-100.
Please Enter Grade 2: 101 (It accapts this input)
这是我的代码:
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];
}
}
试试这个:
int main() {
vector<double> gradesVector(15);
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);
}
}
语句
while(gradesVector > 0.0 && gradesVector <= 100.0)
试图检查整个向量是大于 0 还是小于 100,这实际上没有意义。 你想做类似while(gradesVector[i] > 0.0 && gradesVector[i] <= 100.0)
的事情(只要确保i
在正确的范围内(。
编辑:只需摆脱do-while循环,只使用for循环。 在 for 循环中,添加一个 if 语句:if(gradesVector[i] > 0.0 && gradesVector[i] <= 100.0)
。 如果验证失败,请使用 break
语句退出 for 循环。
相关文章:
- 正在尝试了解输入验证循环
- 如何在C++中检查2D数组中负值的输入验证
- LibGit2 SSH身份验证失败
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- constexpr上下文中std::initializer_list的验证
- 正在验证c++中用户的整数输入
- 加密++验证大文件签名
- C++卡验证问题
- 验证指针链
- 此代码验证公式是什么意思?
- cin 的十进制输入验证?
- 简单的 HTML 验证器
- 密码长度验证 (c++)
- 输入验证以筛选出字符、字符串和一系列整数
- 如何使用 CredUIPromptForWindowsCredentials验证凭据
- 指针验证的最佳实践?
- RSA_PKCS1签名验证
- 验证openssl c++中的签名,这是由JAVA DSA签名的?
- 使用 C++ 验证 NMEA 句子
- 为什么 WinInet 在通过 FQDN 连接时无法通过协商自动进行身份验证,但如果通过 IP 连接则成功?