コンソールから文字を読み取ろうとしています(whileループ内)。しかし、それは複数回読みます。
入力:
a
出力:
char : a char : char : '
コード:
while(..)
{
char in;
scanf("%c",&in);
}
「a」のみを読み取るにはどうすればよいですか?
scanf("%c",&in);
次の反復で消費される改行を残します。
次のように変更します。
scanf(" %c",&in); // Notice the whitespace in the format string
これは、空白を無視するようにscanfに指示します。
OR
scanf(" %c",&in);
getchar(); // To consume the newline
文字を1つだけ読み込むには、代わりに getchar を使用します。
int c = getchar();
if (c != EOF)
printf("%c\n", c);
scanf("%c",&in);
では、%c
の後に余分な文字を吸収するために改行文字\n
を追加できます
scanf("%c\n",&in);