8.2.2 파일 포인터 선언 파일 열기
(1) 파일포인터의 선언
(2) 파일 열기
// fopen() 함수의 기본적인 사용모드
사용 모드 | 의미 | 파일이 있을 경우 | 파일이 없을 경우 |
"r" , "rb" | 파일 읽기 | 정상 처리 | NULL값 반환 |
"r+" , "rb+" | 파일 읽기, 쓰기 겸용 | 정상 처리 | NULL값 반환 |
"w" ," wb" | 파일 쓰기 | 이전 내용 삭제 | 새파일 생성 |
"w+", "wb+" | 파일 읽기, 쓰기 겸용 | 이전 내용 삭제 | 새파일 생성 |
"a" , "ab" | 파일 추가 | 이전 내용 뒤에 추가 | 새파일 생성 |
"a+" , "ab+" | 파일 읽기, 쓰기 겸용 | 이전 내용 뒤에 추가 | 새파일 생성 |
- fopen()함수의 사용모드 예
fopen("파일명",“w"); → 텍스트 모드 출력 개방
fopen("파일명","rt"); → 텍스트 모드 입력 개방
fopen("파일명","wb"); → 진 모드 출력 개방
fopen("파일명","rb+"); → 진 모드 입력 개방
// 파일 열기 사용 예
void main(){
FILE *fp1, *fp2;
fp1 = fopen("d:\text.txt", "w"); -----> d드라이브 밑에 text.txt 파일을 쓰기용으로 개방하고, 그 시작주소를
fp2 = fopen("c:\source\text.c", "r"); } 파일 포인터 fp1에 건네준다
↓ ↓ ↓ --> 파일 open이 안될 경우를 고려해서 강제로 종료시켜야 함
if((fp=fopen("파일명", "사용모드")) == NULL) {
puts("파일을 열 수 없음! ");
exit(1); } -----------------------> 프로그램을 종료할 때 사용하는 함수
(3) 파일 닫기
* 형식 : fclose(파일포인터 변수);
* 사용 예 : fclose(fp);
* 기능 : 열었던 파일을 닫고, fp를 해제
- fclose() 함수
: 개방된 통로와 버퍼를 원 상태로 환원
: 쓰기의 경우 파일 끝에 EOF( End Of File)신호를 부가 (완전한 파일로 완성됨)
// 파일 열기와 닫기 사용 예
void main(){
FILE *fp1, *fp2; ----------------------------> 파일포인터 fp1과 fp2를 선언
fp1 = fopen("c:\text.txt" , "w");
fp2 = fopen("c:\source\test.c", "r"); ----> twst.c 파일을 읽기용으로 개방하고
..... 시작주소를 파일포인터 fp2에 넘겨줌
fclose(fp1);
fclose(fp2); } ----------------------------> 열었던 파일을 닫고 파일포인터 fp2를 해제
8.3 순차 파일 처리
정보의 집합을 파일이라 하면, 파일은 논리적으로 레코드(record) 단위로 이루어지며, 레코드는 필드(filed)로 구성되며,
파일 입출력 처리에 사용되는 기본단위는 레코드이다.
파일처리함수를 이용하여 파일을 편성하는 방법에 따라
> 순차파일 : 파일의 처음부터 자료를 차례로 읽고, 기록하는 파일
레코드의 길이가 일정하지 않은 파일
> 랜덤파일 : 파일의 임의의 위치에서 자료를 읽고, 기록하는 파일
레코드의 길이가 일정한 파일
- 순차파일에서의 레코드 구성
> 순차파일은 레코드의 길이가 일정하지 않기 때문에
레코드들의 구분이 필요 : CR/LF를 사용하여 구분
8.3.1 순차 파일 만들기
순차 파일 출력함수
> 만들어진 파일에 자료를 기록하는 함수
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
순차 파일 읽기 getc() , fgetc(), fgets(), fscanf() (0) | 2020.06.20 |
---|---|
순차 파일 putc() fputs() fprintf() (0) | 2020.06.19 |
파일처리함수 (1) | 2020.06.17 |
13강 파일처리 함수 (0) | 2020.06.16 |
공용체 union (0) | 2020.06.15 |