0

嘿,我在尝试验证字符串时遇到此错误。基本上我希望游戏在用户输入有效名称之前不会继续。约翰、玛丽等……而不是数字 123434 等……

这是我的代码:

string input1 ="What is your name ?\n";
    string name = getString(input1);//The error is in the getString.

bool getString(string str)
{
  for (int i = 0; i < str.size(); i++)
  {
   if (isdigit(str[i]))
      return false;
   }
  return true;
}
4

2 回答 2

2
 string name = getString(input1);//The error is in the getString.

您不能将 bool 转换为字符串或将 a 转换boolstring,没有implicit conversion. 也许你真的想返回一个字符串。我不确定你命名你的函数getString,但你返回一个bool.

除非您有一个方便的名称列表并将输入与数据库、文件等进行比较。比较输入可能很困难。如果用户输入Dsjdksdksdksdskd怎么办?

帮助/回答您的问题:

if(isDigitInString(name))
{

}
于 2012-10-18T18:25:33.213 回答
0

you trying to assign a bool value to a string hence an error. You should write something like this -

    if(getString(input1))
    {
       // code which continues the game
    } 
    else
    {
       // show some error message or ask for input again 
    } 
于 2012-10-18T18:30:01.633 回答