ユーザには1つの文字を入力させたい場合は、C言語でどうやってやりますか?私のこの試みは以下の通りですが、恐ろしく失敗しました。私がオンラインで読んだところから、これを達成するためにファンクションやファットを使うことができると聞いていましたが、どうやって解決するのか分かりませんでした。私はどのようにしてユーザに1文字の入力を許可するのですか
do
{
geussNumber += 1;
printf("Enter guess number %d\n", geussNumber);
scanf(" %c", &geussLetter);
scanf ("%c", &inputViolation);
if (isalpha(geussLetter) == 0)
{
printf("You did not enter a letter\n");
}
else if (inputViolation == true)
{
printf("You eneterd more than one letter\n");
}
else
{
inputLoopEnd = 1;
}
}
while(inputLoopEnd == false);
'inputViolation == true 'は恐ろしいです...私はそれが少なくともいくつかの文字と比較されるべきだと思います。 – MikeCAT
いいえ、 'gets()'はバッファオーバーランの危険性が避けられず、C99で廃止され、C11から削除されるため、使用できません。 – MikeCAT
私は、入力文字列に0以外の文字(cでtrue)を読み込んだ場合、ユーザーが複数の文字を入力したと考えていました。 –