텍스트와 바이너리 데이터의 집합체인 구조체 변수의 입출력
⇒ 구조체 변수를 하나의 바이너리 데이터로 인식하고 처리
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); |
'언어 > 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 |