C++ 파일 읽기 fgets(), fgetc() 사용 방법

C 또는 C++에서 파일 내용을 읽어오는 방법에 대해 알아보겠습니다.

파일을 읽어오는 함수로는 fgets(), fgetc()가 있습니다.

하나씩 살펴보도록 하겠습니다.

  • fgets() – 문자 단위로 처리
  • fgetc() – 행 단위로 처리

 

fgetc()

fgetc는 파일을 문자 단위로 처리를 합니다.

작성 방법은 아래와 같습니다.

fgetc(포인터 이름)

 

샘플 소스를 보도록 하겠습니다.

#include <stdio.h>

int main(void)
{
	FILE *fp;
	char c;

	fopen_s(&fp, "file.txt", "r");

	while (1)
                c = fgetc(fp);
                if(c == NULL)
                        break;

		printf("%s", str);

	fclose(fp);

	return 0;
}

 

fopen_s 함수를 사용해 file.txt 파일을 오픈합니다.

while 문을 사용해 파일에 마지막 문자가 존재할 때까지 취득을 하게 됩니다.

마지막 문자까지 읽어와 null이 되면 반복문을 종료하게 됩니다.

fclose 함수로 파일을 닫고 처리를 종료합니다.

 

fgets()

파일에서 행 단위로 취득하고 싶은 경우 에는 fgets 함수를 사용합니다.

작성 방법은 다음과 같습니다.

fgets(저장할 배열, 1행 최대 문자수, 포인트 이름)

 

fgets 함수를 사용해 행 단위로 취득한 값은 문자열 배열로 저장이 됩니다.

샘플 소스를 보겠습니다.

#include <stdio.h>

int main(void)
{
	FILE *fp;
	char str[256];

	fopen_s(&fp, "file.txt", "r");

	while (fgets(str, 256, fp) != NULL)
		printf("%s", str);

	fclose(fp);

	return 0;
}

 

문자열을 최대 256자리 까지 읽어서 str 변수에 저장합니다.

while 문을 사용해 마지막 행까지 읽어 오게 됩니다.

마지막 행이라기보다 문자열이 존재하지 않을 때까지 반복하게 됩니다.

댓글