C++ 正在验证用户输入的数字
尝试创建一个while循环,该循环将重新请求输入正确的输入。在这种情况下,正确的输入需要是一个数字。当我测试它并输入非数字答案时,程序结束。while循环不工作C++ 正在验证用户输入的数字,c++,validation,while-loop,C++,Validation,While Loop,尝试创建一个while循环,该循环将重新请求输入正确的输入。在这种情况下,正确的输入需要是一个数字。当我测试它并输入非数字答案时,程序结束。while循环不工作 if (variableQuestionsVf == "Yes" || variableQuestionsVf == "yes") { cout << "Input final velocity (in m/s): " ;
if (variableQuestionsVf == "Yes" || variableQuestionsVf == "yes")
{
cout << "Input final velocity (in m/s): " ;
while (cin >> finalVelocity)
{
istringstream s(sVf);
s >> value;
if (value <= 0 || value >= 0) //Validating input for final velocity
break;
cout << "Please enter final velocity (in m/s): " ;
}
}
if(variableQuestionsVf==“Yes”| variableQuestionsVf==“Yes”)
{
最终位置)
{
Istringstreams(sVf);
s>>价值;
if(value=0)//验证最终速度的输入
打破
cout我认为您的输入验证不正确。请尝试执行以下操作:
#include <iostream>
#include <limits>
int main()
{
int x;
std::cin >> x;
while(std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Bad entry. Enter a NUMBER: ";
std::cin >> x;
}
}
#包括
#包括
int main()
{
int x;
标准:cin>>x;
while(std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits::max(),'\n');
std::cout>x;
}
}
< /P>我很好奇,为什么当一个从一个小分隔的文本文件中读取的C++工具会更容易重复运行时,人们为什么会使用80年代风格的交互程序?更好的是,在可能的时候与你的程序通信,使用“<代码> ARGV < /代码>。EgMin的C++书我喜欢用I/O开始。对于数字i,数字——编辑修复。that@tadman我是C++新手,我只是在空闲时间尝试编写一个程序。它不是最漂亮的代码,它可能不是最有效的,但是你必须从某个地方开始,在我拥有所有bug REM时,它最终会起作用。oved,这对我来说是一个很好的开始。谢谢你提供了简单的解决方案!我调整了代码以适应我的代码,它工作得非常完美。如果你能解释它是如何工作的,它会让它变得更好!我理解到数字限制。无论如何,谢谢你的帮助!