に空白を無視し、私は私のユーザー入力が同様またはB
入力であるかどうかを確認したい:「aA
AA
vbB
など無効チェックユーザ入力AまたはBの場合と
空白だろう A(またはB)の後 Aと前には許可されています。
入力チェックはユーザ入力有効な文字(AまたはB)またはunti EOF(CTRL + D)までに実行する必要があり
。今のint check_input(void)
{
char check = 0;
int return_value = 0;
int num = 0;
int correct_input = 0;
int choice = 0;
do
{
return_value = scanf("%c",&check);
if (return_value == EOF)
{
return EOF;
}
else if (return_value == 1)
{
if(check == 'A')
{
choice = 1;
correct_input = 1;
}
else if(check == 'B')
{
choice = 2;
correct_input = 1;
}
else
{
printf("Error, Please input correct choice(A/B):");
}
}
} while (correct_input == 0);
return choice;
}
にスペースを無視する方法を知らない:
私のコードは、このための基礎知識ではなく、残りの作業を実行する方法がわからを持っています。何か助けていただきありがとうございます
おそらく、あなたは 'ISBLANK()'や 'isspace()'関数を探しています。両者の違いに注意してください。 –
また、 'scanf()'をあなたのために行うこともできます。改行を含む先頭の空白をすべて無視する場合は、 'scanf()'形式の先頭にスペース文字を挿入するだけです。 –
1文字を読むのではなく、 'fgets()'で1行全体を読む。次に、周囲の空白を整えて、それが単一の文字かどうかを確認します。 – Barmar