fflush.c

Programming Languages/C 2010. 1. 12. 16:21

/************************************************************/
/* fflush(FILE * stream) 버퍼를 비우는 기능                             */
/* stream = stdout일 경우 버퍼의 내용을 지우는 것이 아니라       */
/* 지정한 스트림으로 fflush 호출 시 보내라는 의미                     */
/* stream = stdin일 경우는 버퍼의 내용을 지우는 것                   */
/************************************************************/
#include <stdio.h>

int main(void) {
    char perID[7];
    char name[10];

    fputs("주민번호 앞 6자리를 입력하세요 : ", stdout);
    fgets(perID, sizeof(perID), stdin);

    fflush(stdin); // 입력 버퍼를 비운다.
    // 처음 입력 fputs에서 123456-1234567 을 입력했을 때 -1234567은 버퍼에 남게 된다.
    // 그래서 버퍼를 비운다. 비우지 않으면 당연히 그 값도 출력된다.
    fputs("이름을 입력하세요 : ", stdout);
    fgets(name, sizeof(name), stdin);

    printf("주민번호 앞자리 : %s \n", perID);
    printf("이           름 : %s \n", name);

    return 0;
}

'Programming Languages > C' 카테고리의 다른 글

가변 인자 함수 1  (0) 2010.08.31
포인터 다루기  (0) 2010.04.08
파일 입/출력  (0) 2010.03.14
재귀 함수  (0) 2010.03.09
char_IO.c  (0) 2010.01.12
Posted by 독뽀
,