반응형
SMALL

학습목표

1. 파일을 이용한 자료의 입출력을 이해할 수 있다.

2. 파일 입출력의 수행과정을 이해할 수 있다.

3. 파일 포인터를 이용한 자료의 입출력을 수행할 수 있다.

4. 순차 파일의 개념을 이해할수 있다.

 

주용용어

스트림 stream : 자료의 입출력을 위한 논리적인 통로

파일 포인터 : 파일이 어디 있는지를 가리키는 포인터

순차파일 : 파일의 처음에서 부터 자료를 차례로 읽고, 기록하는 파일

랜덤파일 : 파일의 임의의 자료를 읽고, 기록하는 파일

 

 

8.2 파일 포인터를 이용한 파일 입출력

// 파일 처리 함수와 기능

함수 기능
fopen("파일명","모드")  파일을 지정된 모드로 열기
fclose()  파일을 닫기
fgetc(), getc()  파일로부터 한 문자 읽기
fputc(), putc()    파일에 한 문자 쓰기
fgets()  파일로부터 문자열 읽기
fputs()  파일에 문자열 쓰기
fscanf()  파일로부터 정해진 형식에 따라 읽기
fprintf()  파일에 정해진 형식에 따라 쓰기
fread()  파일로부터 정해진 크기의 자료를 정해진 개수만큼 읽기
fwrite()  파일에 정해진 크기의 자료를 정해진 개수만큼 쓰기
fseek()  파일에서 입출력 위치를 이동
feof()  파일의 끝인가를 판별
ferror()  파일의 입출력 시 에러 발생 유무 조사

 

 

8.2.2 파일 포인터 선언 파일 열기

(1) 파일포인터의 선언

> 파일 입출력을 위해서는 맨 처음 파일포인터를 선언해야 한다.

> 이 파일포인터는 실제 파일과 프로그램을 연결해 주는 통로가 된다.

 - 형식 : FILE *변수명;

 - 사용 예 : FILE *fp;

 - 기능 : 파일형 포인터 변수를 선언한다.

 

(2) 파일 열기

> 파일포인터 변수와 버퍼의 관계

 

   FILE *fa, *fb; ----------> 파일형 포인터 변수 선언  - FILE 형 : 구조체형 ,

                                                                    - FILE형 포인터변수: 파일에 대한 여러 가지 정보를 가진 변수

 

> 프로그램과 디스크 상의 파일 사이에 데이터가 입출력할 수 있도록 통로를 만들어 주는 것

 

* 형식 : fopen("파일명", "사용모드");

* 사용 예 : fp = fopen("test.dat", "r");

* 기능: 파일을 열어 사용할 수 있게 함

 

- fopen() 함수

> 입출력이 정상이면 지정된 파일의 파일포인터에 시작주소 값을 리턴

> 파일이 개방되지 않을 때는 에러 값 (NULL)을 리턴

 

- 파일 명

* 형식 : fopen("파일명", "사용모드");

* 사용 예 : fp = fopen("test.dat", "r");

test.dat : c:\test.txt // c:\프로그래밍\8장\test.txt 와 같이 표현도 됨

 

- 사용모드

* 형식 : fopen("파일명", "사용모드");

* 사용 예 : fp = fopen("text.dat","r");

 

- 개방한 파일의용도를 결정짓는다.

- 즉, 자료의 입출력 방식을 의미

 

** 사용(개방)모드 = 파일 접근 모드 + 데이터 입출력 모드 

- 파일 접근 모드 (r, r+, w, w+, a, a+)

- 데이터 입출력 모드 (t. b)

    t : 텍스트 모드 (test mode)

        -- 프로그램에서 파일로 자료를 입출력 할 때 변환이 일어나는 입출력 모드

        -- 문자 변환이 필요 (\n <--> CR/LF)

    b : 2진 모드 (binary mode)

        -- 변환이 일어나지 않는 입출력 모드

        -- 문자 변환이 불 필요         

 

 // fopen() 함수의 기본적인 사용모드

사용 모드 의미  파일이 있을 경우 파일이 없을 경우
"r" , "rb" 파일 읽기 정상 처리 NULL값 반환
"r+" , "rb+" 파일 읽기, 쓰기 겸용 정상 처리 NULL값 반환
"w" ," wb" 파일 쓰기  이전 내용 삭제 새파일 생성
"w+", "wb+" 파일 읽기, 쓰기 겸용 이전 내용 삭제 새파일 생성
"a" , "ab" 파일 추가 이전 내용 뒤에 추가 새파일 생성
"a+" , "ab+" 파일 읽기, 쓰기 겸용 이전 내용 뒤에 추가 새파일 생성

 

반응형
LIST

+ Recent posts