getc 함수

참고 getc는 fgetc의 매크로 함수입니다.

int getc(FILE *fp); 파일 스트림의 버퍼에서 맨 앞의 문자의 ASCII 코드 값을 반환하는 매크로 함수

입력 매개 변수 리스트

fp 입력 파일 스트림

반환 값

성공 시 읽은 문자, 실패 시 EOF를 반환하고 eror를 설정

사용 예는 fgetc 사용 예와 차이가 있는 부분은 fgetc 함수 호출을 getc로 바꾼 것입니다. getc 함수가 fgetc 함수를 래핑한 매크로 함수이므로 실제 동작에 둘은 차이가 없습니다.

사용 예

//C언어 표준 라이브러리 함수 가이드
//int getc(FILE *fp); 파일 스트림의 버퍼에서 맨 앞의 문자의 ASCII 코드 값을 반환하는 매크로 함수
//input.txt 파일의 내용을 읽어 라인 번호를 추가하여 표준 출력 스트림에 출력

#include <stdio.h>
int main(void)
{
    FILE * fp;
    int ch;
    int line_no = 0;

    fopen_s(&fp, "input.txt", "rt");//읽기 모드로 파일 열기
    if (fp == NULL) //열기 실패
    {
        perror("error fopen");
        return;
    }

    line_no++;
    printf("%4d: ", line_no);//라인번호 출력
    while (!feof(fp))//파일의 끝을 만나지 않았다면 반복
    {
        ch = getc(fp);//파일에서 하나의 문자를 읽음
        putchar(ch);//표준 출력 스트림에 문자 출력
        if (ch == '\n')//개행 문자일 때
        {
            line_no++;//라인 번호 1 증가
            printf("%4d: ", line_no);//라인 번호 출력
        }
    }
    fclose(fp);//파일 스트림 닫기
    printf("\n");
    return 0;
}

input.txt 내용

안녕하세요. 
언제나 휴일 커뮤니티 사이트입니다.
C언어 표준 라이브러리 함수 가이드 집필을 시작하였습니다.
여러분의 많은 관심 바랍니다.
2015년 10월 23일

출력

   1: 안녕하세요. 
   2: 언제나 휴일 커뮤니티 사이트입니다.
   3: C언어 표준 라이브러리 함수 가이드 집필을 시작하였습니다.
   4: 여러분의 많은 관심 바랍니다.
   5: 2015년 10월 23일