[C] 파일 입출력 2 (fputc)
C언어에서 파일을 복사해보자.
파일을 복사하는 원리
파일을 복사하는 원리는 원본 파일에서 한 글자를 가져온 후, 새로운 파일에다가 쓰는 과정을 파일 끝까지 반복하는 것이다.
#include <stdio.h>
#include <stdlib.h>
int main () {
FILE *fp, *fp2;
char ch;
fp = fopen("pigs.txt", "r");
fp2 = fopen("copy.txt", "w");
if (fp == NULL || fp2 == NULL) {
printf("실패\n");
exit(0);
}
// 복사하는 코드
while ((ch = fgetc(fp)) != EOF) {
fputc(ch, fp2); // 한 글자씩 기록
}
printf("복사가 완료되었습니다.");
// 복사 완료
fclose(fp);
fclose(fp2);
return 0;
}
따라서, 파일을 총 2개를 다루는 것이며, 원본 파일은 읽기, 생성할 복사본은 쓰기 모드로 생성한다.
그래서 기초적인 코드는 위와 같다.
fputc 함수
fputc("문자 변수", "파일의 포인터 변수");
// 적용
fputc(ch, fp2);
fgetc 함수가 특정 파일의 포인터 변수에서 글자를 한 글자씩 가져오는 것이라면,
fputc함수는 어떤 문자를 어떤 파일에 저장할지 결정하는 함수이다. 따라서 입력 형태는 위와 같다.