Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어에서 fflush(stdin) 함수 사용법 완벽 정리

C 언어의 fflush() 함수는 스트림에 연결된 버퍼를 비우는(flush) 역할을 합니다. 함수 호출이 성공하면 0을 반환하고, 실패할 경우 EOF를 반환하며 feof 오류 표시자가 설정됩니다.

fflush() 함수의 문법

fflush 함수의 기본적인 문법은 다음과 같습니다.

int fflush(FILE *stream);

매개변수로 버퍼를 비우고 싶은 스트림의 포인터를 전달하며, 여기에 stdin을 넘기면 표준 입력 스트림에 대해 fflush를 호출하게 됩니다.

fflush(stdin) 예제 코드

다음은 C 언어에서 fflush(stdin)을 사용하는 간단한 예제입니다.

#include <stdio.h>

int main() {
    char s[20] = "Helloworld";
    printf("The string : %s", s);
    fflush(stdin);
    return 0;
}

실행 결과

The string : Helloworld

주의사항

fflush 함수는 원래 출력 스트림을 위해 설계된 함수입니다. C 표준에 따르면 입력 스트림인 stdin에 fflush를 사용하는 것은 정의되지 않은 동작(undefined behavior)에 해당합니다.

다만 일부 컴파일러(예: 마이크로소프트 Visual C++)에서는 입력 버퍼를 비우는 확장 기능으로 fflush(stdin)를 지원하기도 합니다. 이식성이 중요한 코드라면 getchar()를 반복 호출하여 입력 버퍼를 직접 비우는 방식을 사용하는 것이 더 안전합니다.