작성
·
301
·
수정됨
0
int main()
{
char t = 0;
int red;
printf("enter char : ");
red = scanf("%c", &t);
while (red==1)
{
printf("OK\n");
printf("enter next char : ");
red = scanf("%c", &t);
}
printf("END\n");
return 0;
}
q를 입력했을 때 생각한 결과는
enter char : q
OK
enter next char :
이건데
while문 안에 있는 scanf가 입력을 한번 건너뛰더라고요. q를 한번 입력했더니 결과로
enter char : q
OK
enter next char : OK
enter next char :
이렇게 나왔습니다 왜 입력을 건너뛴건가요??
답변 1
0
scanf("%c", &t) 함수는 입력받은 값을 stdin 스트림에서 제거하지 않아서 그렇슨니다.
다음 scanf("%c", &t)를 실행할 때 이전에 입력받은 값이
stdin 스트림에 남아있어 재입력되는 것으로 보입니다.
getchar()로 입력받은 값을 제거해주세요.
Copy codeint main()
{
char t = 0;
int red;
printf("enter char : ");
red = scanf("%c", &t);
while (red==1)
{