fopen, fclose
#inlcude <stdio.h>
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *stream);
int main(){
FILE *fp;
fp = fopen("unix.txt","r");
fclose(fp);
}
- fopen : filename으로 지정한 파일을 mode에 따라서 열고 파일 포인터 리턴
- mode 값 : r, w, a, rb, wb, ab, r+, w+, a+ , rb+, wb+, ab+
- + 붙으면 2개 (읽기 쓰기 / 추가 읽기 ..)
- mode 값 넣을 때 따옴표 잊지 않기!
fread
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream);
int main(){
n = fread(buf, sizeof(char)*2, 3, rfp);
}
- 항목 크기가 size인 데이터를 nitems에 지정한 개수만큼 읽어서 ptr에 저장
- 읽어온 항목 수 리턴
- rfp에서 char형 2개 사이즈인 데이터 3개 읽어서 buf에 저장
-> 6글자 읽기
fwrite
#include <stdio.h>
size_t fwirte(const void *ptr, size_t size, size_t nitems, FILE *stream);
int main(){
fwrite(buf, sizeof(char)*2, 3, wfp);
}
- ptr에서 size인 데이터 nitems 개수만큼 읽어서 stream에 출력
- 성공 시 출력한 항목 수 리턴
- buf에서 char 2개 사이즈 항목을 3개 읽어서 wfp에 출력
fscanf, fprintf
#include <stdio.h>
int fscanf(FILE *restrict stream, const char *restrict format, ...);
int fprintf(FILE *restrict stream, const char *restrict format, ...);
int main(){
n=fscanf(rfp, "%d %d %d %d",&id, &s1, &s2, &s3);
fprintf(wfp, "%d : %d\n", id, s1);
}
- scanf, printf와 사용법 동일, 맨 앞 인자가 파일 포인터라는 것만 다름