학습목표
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+" | 파일 읽기, 쓰기 겸용 | 이전 내용 뒤에 추가 | 새파일 생성 |
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
순차 파일 putc() fputs() fprintf() (0) | 2020.06.19 |
---|---|
파일처리함수 (fclose, 파일 닫기) (0) | 2020.06.18 |
13강 파일처리 함수 (0) | 2020.06.16 |
공용체 union (0) | 2020.06.15 |
구조체struct 의 비트필드 bit field (0) | 2020.06.14 |