私のコードはこのように見えますが、解決できませんでした。それは一度でなければなりません
#include<stdio.h>
int main()
{
char x ;
printf("enter.\n");
scanf("%c",&x);
while(x!='D' && x!='d')
{
printf("diomond.\n");
scanf("%c",&x);
}
}
私のコードはこのように見えますが、解決できませんでした。それは一度でなければなりません
#include<stdio.h>
int main()
{
char x ;
printf("enter.\n");
scanf("%c",&x);
while(x!='D' && x!='d')
{
printf("diomond.\n");
scanf("%c",&x);
}
}
この行を変更
scanf("%c",&x);
に
scanf(" %c",&x); /* Notice the space in the format specifier */
2 回実行する理由は、文字を入力すると、次の反復で消費される入力ストリームに改行が残っているためです。フォーマット文字列の先頭にスペースを使用すると、scanf() に空白を無視するように指示されます。
指定子の前にスペースを使用し%c
ます。これは、 を押した後\n
、次の読み取りのために残された改行文字を使い果たすのに役立ちます。 scanf
Enter
scanf(" %c",&x);
// ^space
while(x!= 'D'&& x!='d')
{
printf("diomond.\n");
scanf(" %c",&x);
// ^space
}