Standard C
C 언어 fgetc 사용법 완벽 가이드
레퍼러
2025. 2. 22. 13:44
fgetc 함수는 C 언어에서 파일에서 문자를 하나씩 읽을 때 사용됩니다. 파일 처리에서 데이터를 문자 단위로 읽어야 할 때 유용하게 사용됩니다.
1. fgetc 함수 기본 문법
#include <stdio.h>
int fgetc(FILE *stream);
매개변수 설명:
- stream: 문자를 읽을 파일 포인터입니다.
반환 값:
- 읽은 문자(정수형, unsigned char로 변환됨)
- EOF: 파일 끝에 도달했거나 오류가 발생한 경우
2. fgetc 사용 목적
- 파일에서 문자 단위 데이터 읽기
- 텍스트 파일의 내용을 한 글자씩 분석
- 읽기 과정 중 EOF 및 오류 처리
3. 기본 사용 예제
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (!file) {
perror("파일 열기 실패");
return 1;
}
int ch;
while ((ch = fgetc(file)) != EOF) {
putchar(ch);
}
fclose(file);
return 0;
}
출력 결과:
(파일의 내용이 한 글자씩 출력됩니다.)
4. 실전 활용 예제
4.1. 특정 문자 개수 세기
#include <stdio.h>
int main() {
FILE *file = fopen("data.txt", "r");
if (!file) {
perror("파일 열기 실패");
return 1;
}
int ch, count = 0;
while ((ch = fgetc(file)) != EOF) {
if (ch == 'a') count++;
}
printf("문자 'a'의 개수: %d\\n", count);
fclose(file);
return 0;
}
출력 결과:
문자 'a'의 개수: (개수)
4.2. 파일의 첫 번째 줄 읽기
#include <stdio.h>
int main() {
FILE *file = fopen("sample.txt", "r");
if (!file) {
perror("파일 열기 실패");
return 1;
}
int ch;
while ((ch = fgetc(file)) != EOF && ch != '\\n') {
putchar(ch);
}
fclose(file);
return 0;
}
출력 결과:
(파일의 첫 번째 줄 내용 출력)
5. fgetc 사용 시 주의할 점
- EOF 처리: fgetc는 파일 끝에 도달하거나 오류가 발생하면 EOF를 반환합니다. feof와 ferror를 사용하여 EOF와 오류를 구분하세요.
- 문자형 변환 주의: 반환된 값은 int형이지만, 실제 문자는 unsigned char로 변환됩니다.
- 읽기 속도: 대용량 파일에서는 fgetc의 반복 호출이 비효율적일 수 있습니다. 필요한 경우 버퍼링 기법을 사용하세요.
6. 오류 처리 예제
#include <stdio.h>
int main() {
FILE *file = fopen("nonexistent.txt", "r");
if (!file) {
perror("파일 열기 실패");
return 1;
}
int ch = fgetc(file);
if (ch == EOF) {
if (feof(file)) {
printf("파일 끝에 도달했습니다.\\n");
} else if (ferror(file)) {
printf("파일 읽기 중 오류가 발생했습니다.\\n");
}
}
fclose(file);
return 0;
}
출력 결과:
파일 열기 실패: No such file or directory
7. 결론
fgetc 함수는 파일에서 문자를 한 글자씩 읽어들이는 가장 기본적인 함수입니다. 텍스트 처리, 파일 분석, 문자 기반 데이터 처리 등의 작업에 유용합니다. fgetc를 적절히 사용하여 파일 입출력의 기초를 다져 보세요.