본문 바로가기

Programming/C languages

FILE 처리 함수 요약

< fgetc >  : int fgetc(FILE * fp);

파일에서 문자를 1 바이트씩 읽어 와서 int 형으로 리턴 시킨다. 오류가 발생하거나 파일에 끝에 도달했을 때 EOF 를 리턴

 

<fputc> : int fputc(int ch, FILE *fp);

메모리 상에서 character( 1 byte ) 를 파일에 입력한다.

ch : 파일에 기록할 문자 상수   ,  fp : 대상이 되는 파일 포인터.

fp가 가리키는 파일에 ch를 저장. 정상적으로 작동하면 기록한 문자를 int 형으로 리턴하고 그렇지 않으면 EOF를 리턴.

 

 <fgets> : char *fgets(char *str, int n, FILE* fp);

파일에서 문자열을 n 길이만큼 읽어와 strpointing 하는 character에 삽입한다.

파일이 끝이거나 ‘\n’ 를 만나면 동작을 멈춘다. 삽입 시 str의 마지막에는 ‘\0’ 널 값이 자동으로 삽입

삽입을 성공하면 저장한 문자열의 주소를 char 형으로 리턴한다. 실패 시 NULL 반환 

str    : 파일에서 읽어들인 문자열을 저장할 공간에 대한 포인터.

n      : 읽어들일 문자열의 최대 길이.

fp     : 대상이 되는 파일 포인터.

 

<fputs> : fputs(char *str, FILE *fp);


메모리상의 str fp가 가리키는 파일에 입력한다문자열 끝의 ‘\0’ 은 저장되지 않는다.

str     : 파일에 기록할 문자열.

fp      : 대상이 되는 파일 포인터.


<fscanf>  :  int *fscanf(FILE *fp, char *format, 가변 길이 인수 리스트);


fp
파일 포인터가 가리키는 파일에서 format 서식에 맞추어 각 변수에 저장한다. 성공시 입력한 리스트의 수를 리턴 한다. 실패 시 EOF 리턴.

fp : 대상 파일 포인터.

format : 서식 문자열.

가변 길이 인수 리스트 : 파일로부터 읽은 자료를 보관할 변수 목록.

 

example)

- 서식화된 형식의 데이터를 한 행씩 읽어 들인다.

- int cnt = fscanf(fp, "%d %d %d %d %d", &no, &kor, &eng, &math, &total);

 

 

<fprintf>  :   int fprintf(FILE *fp, char *format, 가변 길이 인수 리스트);


 
fp
파일 포인터가 가리키는 파일에 format에 맞추어 각 변수를 입력한다. 성공 시 입력된 바이트 수가 리턴, 실패 시 임의의 음수 값 리턴.

 fp : 대상 파일 포인터.

 format  : 서식 문자열.

 가변 길이 인수 리스트 : 파일로 저장할 재용을 담고 있는 변수 목록.

 

example)

- 파일에 서식을 갖추어 저장.

- ) fprintf(fp, "%d %d %d %d %d %d %s\n", no, kor, eng, math, total, avg, name);

 

<fseek>  :  int fseek(FILE *fp, long offset, int whence);


fp
포인터가 가리키는 파일에서 원하는 위치로 offset 만큼 whence 에서부터 이동한다.    

 fp  : 대상이 되는 파일.

 offset  : whence 위치부터 새로운 위치까지 상대적으로 떨어진 거리(바이트 수).

 whence  : 파일 포인터 이동을 위한 기준점.

SEEK_SET  : 파일의 시작 위치를 기준으로 파일 포인터를 옮기겠다는 뜻.

SEEK_CUR : 현재의 파일 포인터 위치를 기준으로 다음 위치로 옮기겠다는 뜻.

SEEK_END : 파일의 마지막 위치를 기준으로 파일 포인터를 옮기겠다는 뜻.

 

<ftell>  : long ftell(FILE *fp);


fp
파일 포인터가 가리키는 파일의 현재 탐색중인 위치를 long 값으로 리턴 오류 발생 시 -1값 리턴

fp  :  대상이 되는 파일 포인터