[파일 열기와 닫기]

FILE *fp = fopen("input.txt""r");    // 파일 포인터 선언과 열기
fclose(fp);                            // 파일 닫기
cs




[파일 열기 방식]

 플래그

역할 

파일이 존재하지 않는 경우 

파일이 존재하는 경우 

파일 쓰기 시도할 경우 

 r

 읽기 모드

NULL을 반환 

존재하는 파일을 엶 

안 됨 

 r+

 읽기/쓰기

NULL을 반환 

존재하는 파일을 엶 

내용과 관계없이 겹쳐서 처음부터 써짐 

 쓰기

새로운 파일 생성 

새로운 파일 생성 

잘 써짐 

 w+

쓰기/읽기 

새로운 파일 새성 

새로운 파일 생성 

잘 써짐 

 a

쓰기(추가작성) 

새로운 파일 생성 

존재하는 파일을 엶 

뒤쪽에 추가로 써짐 

a+ 

쓰기/읽기 

새로운 파일 생성 

존재하는 파일을 엶 

뒤쪽에 추가로 써짐 

rb 

2진 읽기 모드 

NULL을 반환

존재하는 파일을 엶 

안 됨 

r+b 

2진 읽기/쓰기 

 NULL을 반환

존재하는 파일을 엶 

내용과 관계없이 겹쳐서 처음부터 써짐 

 wb

2진 쓰기 

새로운 파일 생성 

새로운 파일 생성 

잘 써짐 

 w+b

2진 쓰기/읽기 

 새로운 파일 생성

새로운 파일 생성 

잘 써짐 

ab 

 2진 쓰기(추가)

 새로운 파일 생성

존재하는 파일을 엶 

뒤쪽에 추가로 써짐 

 a+b

 2진 쓰기/읽기

새로운 파일 생성 

존재하는 파일을 엶 

뒤쪽에 추가로 써짐 



[fscanf, fprintf]

int x;
 
fscanf(fp, "%d"&x);
 
fprintf(fp, "%d", x);
cs

scanf, printf와 같이 사용하면 되는데, file pointer를 앞부분에 파라미터로 전달해준다.




[fgets, fputs]

char buf[BUF_SIZE];
 
fgets(buf, 30, fp);
 
fputs("Hello World", fp);
cs

- string 단위로 입출력을 실행하는 기능이다.

- fgets(char 배열, 읽을 크기, 파일 포인터)

- fputs(문자열, 파일 포인터)




[fseek]

fseek(fp, offset, FLAG);

cs


- 파일 포인터의 위치를 변경할 수 있다.

- FLAG로 다음을 사용할 수 있다.

  (1) SEEK_SET : 파일 처음

  (2) SEEK_CUR : 현재 위치

  (3) SEEK_END : 파일의 끝



[fwrite, fread - 바이너리 파일로 열었을 경우 사용 가능]

size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream);
cs


- 반환 : 파일에 쓴 데이터 항목의 수(count)



size_t fread (void *buffer, size_t size, size_t count, FILE *stream);
cs


- 반환 : 파일에서 읽어온 데이터 항목의 수(count)



'C & C++ > Reference' 카테고리의 다른 글

정렬 알고리즘  (0) 2018.05.02
C++ string 정리  (3) 2018.01.23

+ Recent posts