在尝试验证字符串时,我发现此错误。基本上我希望游戏不会继续,直到用户输入有效名称。约翰,玛丽等......而不是数字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;
}
答案 0 :(得分:2)
string name = getString(input1);//The error is in the getString.
您无法将bool转换为字符串或将bool
转换为string
,但没有implicit conversion
。也许你真的想要返回一个字符串。我不确定您的功能是getString
,但是您返回bool
。
除非你有一个方便的名字列表,并将输入与数据库,文件等进行比较。比较输入可能很困难。 如果用户输入 Dsjdksdksdksdskd 会怎样?
帮助/回答您的问题:
if(isDigitInString(name))
{
}
答案 1 :(得分:0)
您尝试将bool值分配给字符串,因此出错。你应该写这样的东西 -
if(getString(input1))
{
// code which continues the game
}
else
{
// show some error message or ask for input again
}