<1 >

1

stream : 문자들의 흐름

file : 입출력이 가능한 모든것들에 대한 논리적 개념

 

2 file 을 사용하는 과정 : 스트림열기(fopen) -> 사용 -> 스트림 닫기(fclose)

 

 

<2>

1.

1)파일 열기 : FILE *fopen(const char *filename) , const char*mode);

*fimename: 읽어들일 file 이름

*mode : 파일에 대한 접근 방식

**file이 해당 프로젝트의 소스파일 안에 있을 경우 경로를 입력하지 않아도 된다.

 

 

2)mode : file 접근방식

"r": file을 읽기 전용으로 개방함 .                                     파일이 현재 존재 x 경우 에러가 발생했다는 의미로 NULL이 반환됨

"w": 현재의 내용을 파괴하고 쓰기 전용으로 개방함.             파일존재 x 경우 새로운 file 생성하고 쓰기전용으로 개방

"a" : 겹쳐쓰지 않고 기존 file 의 끝에 쓰기로 개방함.            파일존재 x 경우 새로운 file 생성하고 쓰기전용으로 개방 

"r+": file 을 읽기와 쓰기용으로 개방함.                             파일존재 x경우 에러가 발생했다는 의미로 NULL반환

"w+" : 현재의 내용을 파괴하고 읽기쓰기로 개방함.             파일존재 x경우 새로운 file을 생성하고 읽기쓰기용으로 개방

"a+" : 겹쳐쓰지 않고, 기존file의 끝에서 읽기, 쓰기로 개방함     파일존재 x 경우 새로운 file을 생성하고 읽기쓰기용으로 개방

 

 

 

3) 파일 닫기 : int fclose(FILE *fp);

fp: 읽어들임 작업을 마칠 file의 포인터

 

 

 

 

2. 파일 사용

1) file 출력 - 파일데이터 저장

-문자 : int fputc(int c, FILE *fp);

-서식화 출력 : int fprintf(FILE *fp, const char *format, ... );

-블록 출력 : size_t fwrite(const void *ptr, size_t size , size_t n, FILE *fp);

-문자열 출력 : int fputs(const char *s, FILE *fp);

 

 

2)file 입력 - 파일데이터 읽음

-한문자 입력 : int getc(FILE*fp);

-서식화 입력 : int fscanf(FILE *fp , const char*format,...);

-블록 입력 : size_t tread(void *ptr, size_t size, size_t n, FILE *fp);

-문자열 입력 : char *fgets(char *s, int n, FILE *fp);

 

 

 

3. 예

1) 입력 문자열 파일 쓰기

 

원래는 파일이 없었는데 w mode로 파일을 열어서 text파일이 생겼다.

 

 

결과 :

 

 

 

 

 

 

 

 

2) 파일 문자열 변수 저장

 

 

 

- file출력 과정에서 처음부터 0을 입력한 경우 :

test 파일이 없는 상태에서 시작했는데 test 파일이 생겨났고(파일여는과정에서 생김) 파일안에는 아무 내용도 없다.

 

 

 

- 여러 숫자 입력 :

 

 

-파일 출력 과정을 주석처리한 경우 : test파일이 생겨나지 않고 파일 입력 과정이 이뤄지지 않았다.

 

 

 

 

 

'언어 > C' 카테고리의 다른 글

3.31 구조체  (0) 2017.04.03
3.30 포인터2  (0) 2017.03.31

+ Recent posts