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.

boolbool を文字列にキャストしたり、 aをに変換したりすることはできませstringimplicit conversion。おそらく、本当に文字列を返したいと思うでしょう。関数に名前を付けているのでわかりgetStringませんが、 を返しますbool

名前のリストが手元にあり、入力をデータベースやファイルなどと比較しない限り、入力の比較は難しい場合があります。ユーザーがDsjdksdksdksdskdと入力するとどうなりますか?

あなたの質問を助ける/答えるには:

if(isDigitInString(name))
{

}
于 2012-10-18T18:25:33.213 に答える
0

bool 値を文字列に割り当てようとしたため、エラーが発生しました。あなたはこのようなものを書くべきです -

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