모두의 코드
C 언어 레퍼런스 - getc 함수

작성일 : 2010-02-02 이 글은 25116 번 읽혔습니다.

getc

#include <stdio.h>  // C++ 의 경우 <cstdio>
int getc(FILE* stream);

스트림에서 한 문자를 읽어온다.

문자를 읽어온 스트림의 내부 파일 위치 표시자가 현재 가리키는 문자를 리턴한다. 그리고 내부 파일 표시자는 그 다음 문자를 가리키게 된다.

getcfgetc와 동일하며 역시 스트림을 인자로 취하고 있지만 매크로의 형태로 만들어져 있기 때문에 인자는 만일을 위해 식이 아닌 형태여야 한다. getchar 함수는 getc 와 비슷하지만 스트림을 인자로 받지 않는다.

인자

stream

문자를 읽어올 스트림의 FILE 객체를 가리키는 포인터

리턴값

읽어들인 문자는 int 값으로 리턴된다. 만일 파일 끝에 도달하거나, 읽기 오류가 발생한다면 함수는 EOF 를 리턴하고 이에 대응하는 오류 혹은 EOF 표시자가 설정된다. 여러분은 ferror이나 feof함수를 통해 각각 어떤 오류가 발생했는지, 파일 끝에 도달하였는지 알 수 있다.

실행 예제

/*

한 문자를 입력받은 후 이를 출력한다.

*/
#include <stdio.h>
int main() {
  int c;

  c = getc(stdin);

  printf("입력한 문자 : %c", c);

  return 0;
}

실행 결과

위와 같이 입력한 문자가 출력되었음을 볼 수 있다. getc 함수는 scanf 와는 달리 공백 문자도 입력 받을 수 있다.

/*

myfile.txt 에 들어있는 $ 문자의 개수를 셉니다.
이 예제는 http://www.cplusplus.com/reference/clibrary/cstdio/getc/
에서 가져왔습니다.

 */
#include <stdio.h>
int main() {
  FILE* pFile;
  int c;
  int n = 0;
  pFile = fopen("myfile.txt", "r");
  if (pFile == NULL)
    perror("Error opening file");
  else {
    do {
      c = getc(pFile);
      if (c == '$') n++;
    } while (c != EOF);
    fclose(pFile);
    printf("File contains %d$.\n", n);
  }
  return 0;
}

현재 파일의 모습

실행 결과

참고 자료

  • fgetc : 스트림에서 한 문자를 가져온다.

  • fputc : 스트림에 한 문자를 쓴다.

  • fread : 스트림에서 데이터 블록을 읽어온다.

  • fwrite: 스트림에 데이터 블록을 쓴다.

첫 댓글을 달아주세요!
프로필 사진 없음
강좌에 관련 없이 궁금한 내용은 여기를 사용해주세요

    댓글을 불러오는 중입니다..