Young & Rich

 

오늘은 파일 입출력에 대해서 포스팅하겠습니다.

 

아마 이번이 C언어 기초는 마지막 포스팅일 것 같습니다.

 

[파일 입출력]

파일 입출력이란? 파일을 read 하고 write 하는 파일 제어 자료형입니다.

 

파일의 값을 read write 하는데 쓰이는 자료형은 FILE 입니다.

 

아래는 파일 입출력과 같이 쓰이는 함수입니다.

 

fopen(const char *_Filename, const char *_Mode);

: 어떤 파일을 열 것인지, read 할 건지 write 할 건지를 선택하는 함수.

_Filename 에는 파일의 경로가 String 형태로 입력되어집니다.

( ex : "C:\Projects\성적.txt" )

 

fclose(FILE *_File);

: 파일 입출력형 포인터 변수 자원 정리 함수

 

int fprintf(FILE *_File, const char *format ...);

: printf 형식으로 file 에 문자 또는 숫자를 출력하는 함수

 

int fscanf (FILE *_File, const char *format ...);

: scanf 형식으로 fiel 에 문자 또는 숫자를 입력(가져오는) 받는 함수

 

size_t fread(void *buffer, size_t size, size_t count, FILE *_File);

: 이미지 또는 Binary Data 파일을 read 할 때 많이 사용되는 함수

fread는 보통 이미지 파일 및 Binary Data 를 읽어올 때 많이 사용됩니다. 자세한 내용은 다음 기회에 포스팅 하겠습니다.

 

간단한 예제를 통해 알아보겠습니다.

 

#include <stdio.h>

typedef struct Student{		// 구조체 선언
	char Name[32];
	int kor;
	int eng;
	int math;
}Student;

void main()
{
	Student st;
	FILE *in = NULL;	// 파일 스트림 변수 선언 및 초기화
	
	in = fopen("성적.txt", "r");
	fscanf(in, "%s %d %d %d", st.Name, &st.kor, &st.eng, &st.math);		// 파일에 있는 값 읽어오기

	printf("이름      : %s\n", st.Name);
	printf("국어 점수 : %d\n", st.kor);
	printf("영어 점수 : %d\n", st.eng);
	printf("수학 점수 : %d\n", st.math);

	fclose(in);		// 파일 스트림 종료
}

프로그램 실행결과
프로그램 실행결과

fscanf 는 파일에 있는 값을 읽어오는 함수이고, fprintf 는 저희가 Console 찍히는 문자 또는 숫자들이 파일의 형태로 출력된다고(파일로 생성) 생각하시면 됩니다.

 

프로그램 실행을 하고 실행한 값을 파일로 저장하고 또는 프로그램 실행 시 이전 값을 불러와서 프로그램이 실행되게 할 수 있습니다.

-> DB라고 말하긴 거창하지만, 추후에 DB도 결국 File 의 형태로 관리됩니다.

 

그럼 파일 입출력에 대해서 포스팅을 마치겠습니다.

 

그럼 20000.

 

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band