파일 입출력 -3

언어/C 2016. 3. 18. 00:45

텍스트와 바이너리 데이터의 집합체인 구조체 변수의 입출력

⇒ 구조체 변수를 하나의 바이너리 데이터로 인식하고 처리

ex)

fp=fopen("friend.bin", "wb");

printf("이름, 성별, 나이 순 입력: ");

scanf("%s %c %d", myfren1.name, &(myfren1.sex), &(myfren1.age));

fwrite((void *)&myfren1, sizeof(myfren1), 1, fp);

fclose(fp);


fp=fopen(~~~);

fread((void*)&myfren2, sizeof(myfren2), 1, fp);

printf("%s %c %d \n", myfren2.name, myfren2.sex, myfren2.age);

fclose(fp);


파일 위치 지시자 : 파일이 처음 개방되면 무조건 파일의 맨 앞부분 가리킴

1
2
3
#include <stdio.h>
 
int fseek(FILE * stream, long offset, int wherefrom);


파일 위치 지시자의 이동 : seek (stream으로 전달된 파일 위치 지시자를 wherefrom에서부터 offset 바이트만큼 이동)ㅁ

성공시 0, 실패시 0이 아닌 값 반환

 매개변수 wherefrom 이...

파일 위치 지시자는... 

SEEK_SET(0) 이라면

파일 맨 앞에서부터 이동을 시작 

SEEK_CUR(1) 이라면

현재 위치에서부터 이동을 시작

SEEK_END(2) 이라면

파일 맨 끝에서부터 이동을 시작

파일의 맨 끝은 마지막 데이터가 아니라 EOF를 의미

매개변수 offset에 양의 정수 전달 : 파일의 마지막을 향해서 파일 위치 지시자 이동

음의 정수 전달 : 파일의 시작 위치를 향해서 파일 위치 지시자 이동


현재 파일 위치 지시자의 위치 : ftell

1
2
3
#include <stdio.h>
 
long ftell(FILE * stream);


가장 앞 부분의 바이트 위치를 0으로 간주


'언어 > C' 카테고리의 다른 글

static 변수  (0) 2016.03.21
메모리 관리와 메모리의 동적 할당  (0) 2016.03.20
파일 입출력 -2  (0) 2016.03.13
파일 입출력 -1  (0) 2016.03.10
구조체 기초 (열거형 enum)  (0) 2016.03.10
Posted by 知彼知己百戰不殆
,