C_C++/C_라이브러리_함수

(C언어) 파일 복사: fgets(), fputs() 함수를 이용한 파일 복사

고니자니 2022. 11. 13. 14:40
반응형

fgets()

#include <stdio.h>
char *fgets(char *s, int n, FILE *stream)

stream으로 부터 문자들을 읽어서 s에 저장한다.

n-1 개의 문자를 읽어 들였거나 줄바꿈 문자를 만나면 작업을 중단한다.

문자 읽기에 성공하면 s가 지시하는 문자열을 반환하거나, 파일의 끝에 이르거나 오류가 발생하면 NULL을 반환한다.

 

fputs()

#include <stdio.h>
int fputs(const chatr *s, FILE *stream)

문자열 s를 stream에 복제한다.

개행 문자를 덧붙이지 않으며, NULL 종료문자도 복제되지 않는다.

 

 

예제

fgets(), fputs() 함수를 이용해서 정해진 파일을 복사하는 C언어 프로그램입니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	char src[] = "c:\\temp\\data.txt";
	char dest[] = "c:\\temp\\data2.txt";
	char s[255];

	FILE* fin, * fout;

	if ((fin = fopen(src, "r")) == NULL)
	{
		printf("%s 파일이 없습니다.\n", src);
		return -1;
	}

	if ((fout = fopen(dest, "w")) == NULL)
	{
		printf("%s 파일에 저장할 수 없습니다.\n", dest);
		return -1;

	}

	while (!feof(fin))
	{
		fgets(s, 254, fin);
		fputs(s, fout);
	}
	fclose(fin);
	fclose(fout);
    printf("%s 파일이 %s 파일로 복사되었습니다.\n", src, dest);

	return 0;
}

 

원본과 복사된 2개의 파일이 똑 같음을 확인했습니다.

 

 

반응형