我有一个函数,它使用 std 字符串参数来测试是否有字母字符。最好只测试数字字符,但我还没有走到那一步。我只是想让它识别输入中是否没有数字。如果不是,它会循环错误消息,直到只有数字。在此之后,我尝试使用 atof() 将字符串转换为双精度,以便它可以在 main() 中返回。我得到一个调试断言失败!运行时消息,如果输入一个数字,则表达式字符串下标超出范围。否则,如果输入了一个字母,它会不断循环自己的错误消息。我得到了下面函数的代码。有人对我做错了什么有任何线索吗?我没主意了...
double Bet::betProb(std::string b)
{
bool alphChar = false;
double doubleBet;
for(int i = 0; i < b.size(); i++){
if(isalpha(b[i])){
alphChar = true;
}
}
while(alphChar){
cout << "Error! Bet only with numbers." << endl;
cin >> b;
for(int i = 0; i < b.size(); i++){
if(!isalpha(b[i])){
alphChar = false;
}
}
}
string F=b;
int T=F.size();
char Change[100];
for (int a=0;a<=T;a++)
{
Change[a]=F[a];
}
doubleBet = atof(Change);
return doubleBet;
}