C 언어 - 파일다루기 4 - 파일 입력 (파일에 데이터 넣기)

컴퓨터/C

728x90
반응형

파일에 데이터를 넣어봅시다. 

이제 파일 스트림을 생성할 수  있다면 실제 파일을 제어해봐야 될 것입니다.  본문에서는 C언어에서 제공하는 파일을 제어하는 함수들 중 입력 부분에 대한 내용들에 대해서 알아보고 사용해 보도록 하겠습니다.

C언어에서 우리는 표준 스트림을 이용하여 입력하는 다양한 함수들에 대해 다뤄봤습니다. 파일 입력 함수들 또한 크게 다르지 않으니 개념을 정확히 이해하고 있다면 어려운 내용은 아닐 것입니다.

파일에 데이터를 입력하는 함수는 앞에 file을 의미하는 f가 붙어 있고 대표적인 파일 입력 함수들은 다음과 같습니다.

 

  • fputc() 함수 
    • 파일 스트림을 통해 문자 하나를 파일로 출력하는 함수입니다. 
  • fputs() 함수
    • 파일 스트림을 통해 문자열을 파일로 출력하는 함수입니다. 
  • fprintf() 함수
    • 파일 스트림을 통해 다양한 서식 변환 문자를 이용하여 문자열을 출력하는 함수입니다.

 

fputc() 함수

fputc함수를 통해 파일로 문자를 출력(저장)을 할 수 있습니다. 

함수의 원형은 다음과 같습니다.

#include <stdio.h>
int fputc(int c , FILE* stream);
  • 문자를 정상적으로 파일에 출력했다면 해당 문자를 반환합니다.
  • 인자로는 
    • 문자 / 생성된 파일 스트림을 입력합니다. 

예제를 통해 확인해 봅시다.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	//파일 스트림 생성
	FILE* file = fopen("Test.txt", "wt");

	char c1 = 'A';
	if (file != NULL)
	{
		//Test.txt 파일에 문자 삽입 
		fputc(c1, file);
		fputc(65, file);
	}
	fclose(file);
	return 0;
}

C언어에서 문자는 아스키코드로 동작하기 때문에 위와 같이 정수의 입력 또한 동일한 효과를 적용합니다.

 

fputs() 함수 

fputs함수를 통해 파일로 문자열을 출력(저장)을 할 수 있습니다. 

함수의 원형은 다음과 같습니다.

#include<stdio.h>
int fputs(const char* restrict s, FILE * restrict stream);
  • 문자열을 성공적으로 출력한다면 음수가 아닌 정수 값이 반환됩니다.

예제

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	//파일 스트림 생성
	FILE* file = fopen("Test.txt", "wt");
	char c1 = 'A';
	if (file != NULL)
	{
		fputs("Hello", file);
		fputs("World\n", file);
		fputs("2020년 7월 22일\n", file);

	}
	fclose(file);
	return 0;
}

fputs의 경우에 문자열을 집어넣더라도 줄 넘김을 하기 위해서는 '\n'가 필요합니다.

 

fprintf() 함수

파일에서 서식 변환 문자를 이용하여 파일로 문자를 출력하는 함수입니다.

함수의 원형은 다음과 같습니다.

 

#include <stdio.h>
int fprintf(FILE * restrict stream, const char * restrict format, ...);
  • 표준 출력인 printf와 사용법은 유사합니다.

예제

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	//파일 스트림 생성
	FILE* file = fopen("Test.txt", "wt");
	char string[20] = "Hello World";
	int number = 100;
	if (file != NULL)
	{
		fprintf(file,"%s\n" , string);
		fprintf(file, "%d", number);
	}
	fclose(file);
	return 0;
}

 

본문에서는 파일에 데이터를 넣기 위한 함수들에 대하여 알아보았습니다. 표준 입력 함수에 대하여 원활하게 사용한다면 파일에서도 큰 사용 문제는 없을 것이라고 생각됩니다.

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :