- 파일 오픈 : 파일을 입출력하기 위한 준비과정
- 스트림 : 프로그램과 데이터파일 사이의 일종의 다리역활
- 버퍼 : 임시적으로 저장되는 메모리 공간 (스트림에 기본적으로 포함됨)
- fopen 함수
1 | FILE *fopen(const char *name, const char *mode) | cs |
- 첫번째 전달인자 name : 파일이름
- 두번째 전달인자 mode : 파일여는 모드
mode |
각각의 모드 설명 |
“r” |
읽기 모드로 파일을 연다. |
“w” |
쓰기 모드로 파일을 생성.파일이 없으면 생성됨. 파일이 이미 존재하면 기존의 내용이 지워짐 |
“a“ |
추가 모드로 파일을 연다.만약 동일한 기존의 파일이 있으면 데이터가 파일의 끝에 추가됨. 파일이 없으면 새로운 파일을 만듦 |
“r+” |
읽기 모드로 파일을 연다.쓰기 모드로 전환 가능. 파일이 반드시 존재하여야 함 |
“w+” |
쓰기 모드로 파일을 생성한다. 읽기 모드로 전환 가능. 파일이 존재하면 기존의 데이터가 지워짐 |
“a+” |
추가 모드로 파일을 연다. 읽기 모드로 전환 가능. 데이터를 추가하면 EOF 마커를 추가된 데이터의 뒤로 이동. 파일이 없 으면 새로운 파일을 만듦 |
“b” |
이진 파일 모드로 파일을 연다 |
- 파일 형태
- 텍스트 파일일때 변환되어지는 것들
-
오픈 모드와 파일형태가 mode 인수에 같이 기록됨
"rt" |
텍스트 파일을 읽기 전용으로 열기 |
"wb" |
이진 파일을 쓰기 전용으로 열기 |
"r+b" |
이진 파일을 읽기, 쓰기 가능하도록 열기. "rb+"로 대체 가능 |
- 리턴
- 코드
1번째
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h> int main() { FILE *fp = fopen("d:\\A.txt","w"); // file에 write, 없으면 파일 자동생성 fprintf( fp, "테스트\n"); //입력되는 문자열 fclose(fp); return 0; } | cs |
5번째줄 디렉토리 구분할때쓰는 \는 단일로 사용시 확장열로 인식하기때문에 반드시 절대경로로 사용할때 \\ 로 써야됨
6번째줄 뒤의 "테스트\n"이라는 문자열이 A.txt파일에 저장됨
출력 :
2번째
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> int main() { FILE *f; f = fopen("B.txt","rb"); if (f == NULL) { printf("파일이 없습니다"); } else{ printf("파일이 있습니다"); fclose(f); //에러시 필요없음 } return 0; } | cs |
6번째줄 이진파일로 읽기 쓰기가능하게끔 연다
9번째줄 파일이 없으므로 error처리 되므로 fclose가 필요 없음
12번째줄 에러가 아니므로 반드시 fclose로 닫아줘야됨
출력:
그외 용어 정리 및 기타
논리적 : 포맷,파티션 등등의 물리적으로 보이지 않는 소프트웨어적이나 가상의 개념을 뜻함
물리적 : 논리적인 개념과 반대의 개념으로써 실제 사물로써 만질수 있는 것
드라이브 : C:,D: 등등의 논리적 혹은 물리적 입출력 장치
디렉토리 : 드라이브 내부에 존재하는 파일들을 묶어놓은 폴더
상대경로 : 상대적으로 줄여서 나타내는 경로 ex) ../A.txt
절대경로 : 모든 위치를 표기하는 경로 ex) C:\AB\A.txt
일반적으로 DOS 나 Window에서는 대소문자를 구분하지 않으나
코딩이나 유닉스 및 리눅스계열의 OS를 사용할때 반드시 대소문자를 구분해야됨
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160307- 송찬호-업무일지-파일 입출력 (2) | 2016.03.08 |
---|---|
20160307_김가연_업무일지_while을 이용한 반복문 활용 (3) | 2016.03.08 |
20160307-허도경-업무일지-파일 입출력 (5) | 2016.03.08 |
20160307_최기영_업무일지_파일입출력 (8) | 2016.03.08 |
20160307_조재찬_업무일지_파일 입출력 (7) | 2016.03.07 |
2016.03,07 노태경 업무일지 파일입출력 (2) | 2016.03.07 |
20160307_노유찬_업무일지_파일입출력 (7) | 2016.03.07 |
20160307_장진웅_업무일지_파일 입출력 (5) | 2016.03.07 |