嘿,我在尝试验证字符串时遇到此错误。基本上我希望游戏在用户输入有效名称之前不要继续。 John、Mary 等...而不是数字 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;
}
最佳答案
string name = getString(input1);//The error is in the getString.
您不能将 bool 转换为字符串或将 bool
转换为 string
,没有隐式转换
。也许你真的想返回一个字符串。我不确定你将函数命名为 getString
,但你返回了一个 bool
。
除非您手头有一份姓名列表并将输入与数据库、文件等进行比较。比较输入可能很困难。 如果用户输入 Dsjdksdksdksdskd 会怎样?
帮助/回答您的问题:
if(isDigitInString(name))
{
}
关于c++ - 1 智能感知 : no suitable constructor exists to convert from "bool" to "std::basic_string<char, std::char_traits<char>, std::allocator<char>>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961205/