고수준 파일 입출력 함수 정리
1) 파일(스트림)열기 : fopen
FILE *fopen(const char *filename, const char *mode);
ex) FILE *fp;
fp=fopen("file1.c","r");
반환값) 성공: 파일 포인터 실패: NULL
2) 파일 닫기: fcolse
int fclose(FILE *fp);
ex) fclose(fp);
반환값) 성공: 0 실패: EOF
3) 파일에서 문자 읽기: fgetc
int fgetc(FILE *fp);
ex) int ch;
ch=fgetc(fp);
반환값) 성공: 입력받은 문자 실패: EOF
4) 파일에 문자 출력: fputc
int fputc(int c, FILE *fp);
ex) int ch;
fputc(ch,fp);
반환값) 성공: 출력한 문자 실패: EOF
5) 파일에서 문자열 읽기: fgets
파일에 문자열 출력 : fputs
char *fgets(char *string, int n, FILE *fp); // 버퍼의 사이즈 만큼 입력 받음 범위 초과시 버림
int fputs(const char *string,FILE *fp); // 출력시 자동으로 개행을 해준다
ex) char buffer[512];
fp=fopen("file1.data","r");
while(fgets(buffer,512,fp))
fputs(buf,fp2);
fgets 반환값) 성공: 문자열에 대한 포인터 실패: NULL
puts 반환값) 성공: 음수가 아닌값 실패: EOF
파일 입출력이 아닌 경우
char *fgets(char *string, int n, stdin);
6) 파일을 통해 서식을 갖춘데이터를 입력받는다: fscanf
데이터를 서식화하여 파일로 출력한다: fprintf
int fscanf(FILE*stream, const char *format, 변수들의 주소);
반환값) 성공: 입력된 항목수 실패: -1
int fprintf(FILE*stream, const char *format, 변수들);
반환값) 성공: 출력한 문자 수 실패: -1
7) 파일의 이진 자료 입출력 : fread, fwrite
int fread(char *buffer, int num_bytes, int count, FILE *fp);
int fwrite(char *buffer, int num_bytes, int count, FILE *fp);
ex) char buffer[512];
fp=fopen("file1.data","r");
fp2=fopen("file1.bak","w");
while( fread(buffer,100,1,fp) != 0 )
fwrite(buffer,100,1,fp2);
fclose(fp);
fclose(fp2);
fread 반환값) 성공: 입력된 데이터 수 실패: -1
fwrite 반환값) 성공: 출력한 데이터 수 실패: -1
8) 파일의 임의 접근 : fseek
int fseek(FILE *fp, long int offset, int ptrname);
ptrname: 이동위치
SEEK_SET(0) : 파일의 처음
SEEK_CUR(1) : 현재 위치
SEEK_END(2) : 파일의 끝
ex) fseek(fp,234L,0); /* 파일의 처음에서부터 234번째 이동한 위치로
파일포인터 이동 */
반환값) 성공: 0 실패: -1
9) 파일의 현재 위치 알려주는 : ftell
long ftell(FILE *fp);
ex) printf("%ld ",ftell(fp));
반환값) 성공: 읽기쓰기 포인터값 반환 실패: -1
10) 파일 포인터 재설정 :rewind
void rewind(FILE *fp);
11) 파일의 상태 파악: feof, ferror
int feof(FILE *fp);
반환값) 파일의 끝이면 참 을 반환, 끝이 아니면 0 을 반환
int ferror(FILE *fp);
반환값) 파일이 오류이면 참, 오류가 아니면 0을 반환
12) 출력 버퍼를 파일에 기록 : fflush
int fflush(FILE *fp);
fp 가 출력 파일이라면 자료를 강제로 파일 fp에 기록한다.
fp가 입력 파일이라면 버퍼의 자료를 소거(clear)한다.
fflush(stdin);
파일 입출력이 아닌 일반 키보드 입출력 버퍼 지우기
13) 방금 읽은 문자를 파일로 되돌린다 : ungetc
int ungetc(int c, FILE*stream);
반환값) 성공: 되돌린 문자를 반환 실패: -1
참고 :
if( gets(str) == NULL ) puts("입력 실패하엿습니다.\n");
만약 입력이 성공하면 gets(str)은 str주소를 반환한다.
실패하면 NULL값 반환.
'프로그래머의 길 > C & C++' 카테고리의 다른 글
extern, static 이란? (0) | 2007.03.09 |
---|---|
초보자들이 실수하는 getchar() 바로 알기 (0) | 2007.03.07 |
문자열 조작 함수 (0) | 2007.03.06 |
rand() ,srand() 역활 (C에서 random 함수 사용) (0) | 2007.02.27 |
printf() 출력 형식 지정자 (0) | 2007.02.15 |