<div>이제 학원에서 c언어를 배운.지 5일차 되는데요,</div> <div>학원 들어가기 앞서서 책과 동영상을 보면서 예습을 했더니 </div> <div>학원 수업에 별 어려움 없이 적응하며 잘 배우던 중 처음보는 부분이 나와서</div> <div>이렇게 질문글을 남겨봅니다..</div> <div>오늘 강의중에 fflush(stdin)이라는 걸 배웠는데, </div> <div>제가 제대로 이해했는지 모르겠군요..</div> <div> </div> <div>제 나름대로 정리한 부분</div> <div> </div> <div>=================================================================================================================================</div> <div>예를들어 이런 코딩이 있다고 하자.</div> <div> </div> <div>#include <stdio.h><br />void main()<br />{<br /> char num1,num2;<br /> printf("첫번째 문자를 입력: ");<br /> scanf("%c",&num1);<br /> fflush(stdin); //단일주석(부연설명) <br /> printf("두번째 문자를 입력: ");<br /> scanf("%c",&num2);<br /> printf("\n");<br /> printf("첫번째 문자%c\n두번째 문자%c\n",num1,num2);<br />}</stdio.h></div> <div> </div> <div>단일 문자를 입력하는 코딩을 치는데, 만약 여기서 fflush(stdin)이 없다면 어떻게 될까?</div> <div>scanf함수는 자료를 입력받을 때, 입력버퍼에 사용자가 입력한 단일문자와 scanf를 빠져나오기 위한</div> <div>엔터(\n)가 들어가게 된다. 그러면 num1이라 이름으로 할당된 메모리안에 단일문자가 들어가게 되고, </div> <div>입력버퍼엔 엔터가 남게 되면서 다음 scanf 함수를 호출하게 되는데 이때 이미 입력버퍼엔 엔터키가 존재하므로 </div> <div>num2라는 이름으로 할당된 메모리안에 엔터가 들어가면서 scanf함수가 종료된다. 이러한 상황을 막기위한 함수가</div> <div>fflush(stdin)이라는 함수로, 입력버퍼안의 값을 지워주는 역할을 한다.</div> <div>==================================================================================================================================</div> <div> </div> <div>구글링도 해봤는데 원하는 답이 안보여서 질문해봅니다</div> <div> </div> <div>1. 꼭 단일문자 입력할때만 저 함수를 쓰는지</div> <div>2. 숫자를 넣을땐 별 저 fflush<stdin>함수가 필요없다 그러는데 왜 필요 없는지 알 수있을까요??</stdin></div> <div> </div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.