请原谅任何业余错误,我对此还是很陌生。对于我的课程,我们需要将双输入转换为字符串以用于项目的不同部分。整数的验证工作得很好,我尝试使用上一个问题Validating a double in c++ 中的一些代码 ,但令我懊恼的是它没有工作。
这是我的代码:
string input;
bool valid;
double num;
//Verification of valid inputs
do
{
valid = true;
cout << "What is the " << name << " rate of the population? (% per year): ";
getline(cin, input);
num = input.length();
if (num == 0)
{
cout << "\nNo data was entered, please enter a number.\n";
valid = false;
}
else
{
for (double i = 0; i < num; i++)
{
if (input.at(i) < '0' || input.at(i) > '9')
{
cout << "\nPlease enter a valid, positive number.\n";
valid = false;
break;
}
}
}
} while (valid == false);
return stod(input);
谢谢。
编辑:我刚刚发现这个How do i verify a string is valid double (即使它有一个点)?我可以肯定地说我不知道发生了什么。