scanf 입력버퍼 질문이요~
희라
2023.04.01
제가
while(1)
{
fputs(입력:, stdout);
scanf(%d, &sel);
switch(sel)
{
case1 :
puts(1번을 실행합니다.);
*se=1;
return;
default :
puts(잘못 입력하셨습니다. 다시 입력해주세요.);
break;
}
}
이런식의 함수를 만들었는데요.
여기서 scanf의 값에 .을 입력하게 되면 입력을 받지 않고 게속 default로 넘어가더군요.
fflush 함수로 입력 버퍼를 지워보니 문제가 사라졌는데 왜 그런건지 궁금합니다.
c언어 문법책공부하면서 scanf는 입력 버퍼를 지우는 일이 없는줄 알았거든요 .. fgets 함수에서나 쓰는 함수인줄 알았는데 ..
-
갅지삘여우
열혈강의C 456쪽 - ..표준 입.출력 함수를 사용하는 경우에는 버퍼라는 것을 제공받게 된다는 특징이 있다..
scanf, printf 등등 모두다 표준 입출력함수이니 버퍼를 사용합니다. -
파랑
전 입력 받는데요?? 잘못 입력하셨습니다로 무한루프 도네요..