입력 버퍼 비우기 질문 드립니다.
글쓴이: sunpark20 / 작성시간: 화, 2014/05/13 - 3:07오전
char a[10];
char b[10];
char c[10];
fgets(a, sizeof(a), stdin);
fflush(stdin);
fgets(b, sizeof(b), stdin);
fflush(stdin);
fgets(c, sizeof(c), stdin);
처음 궁금했던 것은 배열의 크기를 넘긴 문자를 받는 것이였습니다. fflush(stdin)을 이용해 버퍼를 비움으로써 해결할 수 있었습니다.
하지만 검색중 fflush(stdin)은 visual 에서만 작동하기 때문에 다른 것을 추천하더군요
while(getchar()!= '\n'); 을 이용해 버퍼를 비운다고 합니다.
하지만 만약 fgets 가 10자를 넘지 않았을 경우에는 while문으로 한번 더 입력을 받게 되더군요..
완벽하게 fflush(stdin)을 대신하지 못하네요 ㅠㅠ 어떻게 해야 할까요??
Forums:
strlen으로 문자열의 길이에 따라 처리해보세요
strlen으로 문자열의 길이에 따라 처리해보세요
---
http://coolengineer.com
댓글 달기