fflush(stdin) 이거 관련 질문입니다.
튼싹
질문 제목 : fflush(stdin) 이거 관련 질문입니다.fflush(stdin)을 사용해야만 제대로 키입력이 막힙니다. 왜 그런거죠?질문 내용 :
#includestdio.h
#includestdlib.h
#includetime.h
intmain(void)
{
char*arr[3]={바위,가위,보};
intresult[3]={0};
intuser,com;
inti;
for(i=0;i5;i++)
{
while(1)
{
printf(%s는1,%s는2,%s는3:,arr[0],arr[1],arr[2]);
scanf(%d,&user);
if(!(user==1||user==2||: #000user==3))
printf(잘못입력했습니다.다시입력해주세요.\n);
else
break;
fflush(stdin);
}
srand((int)time(null));
com=(rand()%3)+1;
if(user==com)
{
printf(당신은%s선택,컴퓨터는%s선택,비겼습니다!\n,arr[user-1],arr[com-1]);
result[1]+=1;
}
elseif((user==1&&com==2)||(user==2&&com==3)||(user==3&&com==1))
{
printf(당신은%s선택,컴퓨터는%s선택,이겼습니다!\n,arr[user-1],arr[com-1]);
result[0]+=1;
}
else
{
printf(당신은%s선택,컴퓨터는%s선택,당신이졌습니다!\n,arr[user-1],arr[com-1]);
result[2]+=1;
}
}
printf(게임의결과:%d승%d무%d패\n,result[0],result[1],result[2]);
return0;
}
밑에 질문중에 숫자 1-3 막기 질문으로 해결 했는데요, 제가 하고 있는 프로그램에 적용하니까 fflush(stdin) 을 안썼을때는
제대로 동작을 안합니다.. 1-3외에 다른 키를 입력하면 무한루프로 빠지는데 왜 그렇게 되는건가요?.. fflush 이거 버퍼를
지운다는걸로 봐서 알고있는데.. 정확한게 무슨 원인때문인지 알려주시면 좋겠습니다..