티스토리 뷰

텍스트 파일 입출력

fscanf / 함수원형 : int * fscanf(FILE * stream, const char * format, ...);

헤더

stdio.h


기능

형식화된 문자열을 파일로부터 입력

매개변수

FILE * stream → 읽고자 하는 FILE 포인터, const char * format → 읽어들일 데이터 서식

반환값

읽기에 성공했다면 읽어들인 항목 개수를 반환하고 실패나 오류가 발생하면 -1을 반환

반환 문자열

 

  • %o : 8진 정수 형식으로 입력
  • %d : 10진 정수 형식으로 입력
  • %ld : long형 10진 정수 형식으로 입력
  • %x : 16진 정수 형식으로 입력
  • %f : float형 형식으로 입력
  • %lf : double형 형식으로 입력
  • %c : 문자 형식으로 입력
  • %s : 문자열 형식으로 입력

rewind

 

함수원형

void rewind(FILE * stream);

헤더

stdio.h

기능

파일의 읽기/쓰기 위치를 파일의 처음 위치로 초기화

매개변수

FILE * stream → 대상 파일 스트림

반환값

void

fprintf

형식 문자열의 구조
%[*] [width] [{h | 1 | L}]type

 

flags

- : 전체 폭에 대하여 왼쪽으로 정렬

+ : 부호 있는 값에 대하여 +/-를 출력

빈칸 : 양수만 부호 자리에 빈칸을 출력

0 : 정수의 폭에 맞춰서 0으로 채움

# : o, x, X와 함께 사용되면 0, 0x, 0X를 함께 출력

이진 파일 입출력

fread

함수원형 

size_t fread(void * ptr, size_t size, size_t nitems, FILE * stream);

헤더

stdio.h

기능

이진(Binary)파일로부터 입력

매개변수 

void * ptr → 파일 내용을 읽어들일 메모리 포인터, size_t size →

데이터 하나의 크기, size_t nitems →

읽을 데이터의 개수, FILE * stream →

대상 파일 스트림

반환값

읽어들인 데이터 개수를 반환, 오류가 발생하면 -1을 반환

 

fwrite

함수원형 : size_t fwrite(void * ptr, size_t size, size_t nitems, FILE * stream);

헤더 

stdio.h

기능 

파일에 버퍼 내용을 출력

매개변수 

void * ptr → 파일 내용을 읽어들일 메모리 포인터, size_t size →

데이터 하나의 크기, size_t nitems →

쓰기 할 데이터의 개수, FILE * stream →

대상 파일 스트림

반환값

출력한 데이터 개수를 반환, 오류가 발생하면 -1을 반환

 

fseek

함수원형

int fseek(FILE * stream, long offset, int whence);

헤더

stdio.h

기능

파일의 읽기, 쓰기 위치를 이동

매개변수

FILE * stream →

대상 파일 스트림, long offset →

이동할 바이트 수, int whence →

시작 지점

반환값 

함수 실행이 성공하면 0을 반환, 오류가 발생하면 0이 아닌 값을 반환

 

whence

SEEK_SET : 파일의 시작
SEEK_CUR : 현재 읽기, 쓰기 포인터 위치
SEEK_END : 파일의 끝

 

학습 정리

텍스트 파일 입출력

  • 형식화된 문자열을 이용한 파일 입출력은 fscanf, fprintf를 이용
  • int *scanf( FILE *stream, const char *format, ...);
  • int *fprintf( FILE *stream, const char *format, ...);
  • rewind는 파일의 읽기/쓰기 위치를 처음 위치로 이동임

 

이진 파일 입출력

  • 이진 파일의 입출력은 fread, fwrite를 이용
  • fseek는 지정한 거리만큼 포인터를 이동
  • ftell은 현재 포인터의 위치를 반환
댓글
© 2022 chanchaning