|
stdin은 스트림이라고 해서 버퍼 최대크기만큼 읽은 후 원하는 동작을 하게 되는데, fgetc를 호출하면 버퍼가 비어있다면 버퍼 최대크기만큼 읽은 후 한글자를 버퍼에서 뽑아 옵니다. fscanf의 경우도 마찬가지가 되죠. 그런데 fscanf의 경우 포멧 문자열에 해당되는 데이타가 잘못되었을 경우 버퍼에 있는 문자열을 뽑아오지 못하고 무한 오류에 빠지게 된답니다. 이때 버퍼를 강제로 비우면 오류가 바로잡아 지는데.. 버퍼를 비우는 동작을 하는 함수가 바로 fflush 랍니다.
한마디로, 스트림의 버퍼를 비우는 함수랍니다. -_-;;
파란하기스 님이 쓰신 글 :
: 재가 C언어 초보라서요..
:
: 저번에 여쭤봤던 프로그램에
:
: fflush(stdin)을 넣었을때 프로그램이 실행 잘 되어서요^^;;
:
: 그래서 fflush(stdin)의 정확한 역할을 알고 싶어서.. 이렇게 질문합니다!!
|