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

C 언어 fgetc()와 fputc() 함수 완벽 가이드 – 파일 문자 입출력의 기본

fgetc() 함수란?

fgetc() 함수는 파일에서 한 문자를 읽어오는 데 사용됩니다. 파일 포인터가 가리키는 위치의 문자를 반환하며, 성공하면 해당 문자를, 실패하면 EOF(파일 끝 표시)를 반환합니다.

C 언어에서 fgetc()의 기본 문법은 다음과 같습니다.

int fgetc(FILE *stream)

fgetc() 사용 예제

다음과 같은 내용을 담고 있는 "new.txt" 파일이 있다고 가정해 보겠습니다.

0,hell!o
1,hello!
2,gfdtrhtrhrt
3,demo

이제 fgetc()를 활용한 예제 코드를 살펴보겠습니다.

예제 코드

#include<stdio.h>
#include<conio.h>
void main() {
    FILE *f;
    char s;
    clrscr();
    f=fopen("new.txt","r");
    while((s=fgetc(f))!=EOF) {
        printf("%c",s);
    }
    fclose(f);
    getch();
}

실행 결과

0,hell!o
1,hello!
2,gfdtrhtrhrt
3,demo

위 프로그램은 텍스트 파일 "new.txt"를 대상으로 동작합니다. 파일 포인터를 사용해 파일을 열고 읽으며, 파일에 저장된 전체 내용을 화면에 출력합니다.

핵심 코드 부분은 다음과 같습니다.

FILE *f;
char s;
clrscr();
f=fopen("new.txt","r");

여기서 fopen() 함수가 파일을 읽기 모드("r")로 열고, while 루프 안에서 fgetc()가 파일 끝(EOF)에 도달할 때까지 문자를 하나씩 읽어 printf()로 출력하는 구조입니다.

fputc() 함수란?

fputc() 함수는 파일에 한 문자를 쓰는 데 사용됩니다. 문자를 파일에 기록하고, 성공하면 해당 문자를, 실패하면 EOF를 반환합니다.

C 언어에서 fputc()의 기본 문법은 다음과 같습니다.

int fputc(int character, FILE *stream)

각 매개변수의 의미는 다음과 같습니다.

character − 파일에 쓸 문자입니다.

stream − 문자를 기록할 대상 파일을 가리키는 포인터입니다.

fputc() 사용 예제

마찬가지로 "new.txt" 파일이 있다고 가정해 보겠습니다.

0,hell!o
1,hello!
2,gfdtrhtrhrt
3,demo

이제 fputc()를 활용한 예제 코드를 살펴보겠습니다.

예제 코드

#include <stdio.h>
void main() {
    FILE *f;
    f = fopen("new.txt", "w");
    fputc('a',f);
    fclose(f);
}

이 프로그램은 "new.txt" 파일을 수정합니다. 화면에는 아무런 출력이 나타나지 않지만, 파일 내용이 직접 변경됩니다. 실행 후 파일을 확인해 보면 다음과 같이 바뀌어 있습니다.

a

위 프로그램에서는 파일 포인터 f를 사용해 "new.txt" 파일을 쓰기 모드("w")로 열고, fputc() 함수로 문자 'a'를 파일에 기록합니다.

핵심 코드 부분은 다음과 같습니다.

FILE *f;
f = fopen("new.txt", "w");
fputc('a',f);

주의할 점은 쓰기 모드("w")로 파일을 열 경우 기존 파일 내용이 모두 지워지고 새로 작성된다는 것입니다. 따라서 기존 내용을 유지하면서 추가하려면 추가 모드("a")를 사용해야 합니다.