입력 버퍼 비우기 질문 드립니다.

sunpark20의 이미지

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)을 대신하지 못하네요 ㅠㅠ 어떻게 해야 할까요??

pynoos의 이미지

strlen으로 문자열의 길이에 따라 처리해보세요