336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
개념 :
1. 파일 포인터를 내마음 대로 옮길수 있다.
2. 파일 끝부분 이상으로 기록할 경우. 파일 끝 다음으로 기록되어 의도하지 않게 값이 저장 안 될 수 있다.
3. 원형 과 파라메터
int fseek( FILE *stream, long offset, int origin)
stream : 파일
offset : 파일 포인터의 이동값(1 칸이 1byte)
origin : 어디서 부터 포일 포인터를 움직일지에 대한 플래그 값
origin 에 들어 갈수 있는 값
SEEK_SET (값 : 0) : 파일 포인터를 처음으로 부터
SEEK_CUR (값 : 1) : 현재 파일 포인터가 있는 곳 부터
SEEK_END (값 : 2) : 파일 끝부분 부터
offset 값은 - 와 + 부호를 가지고 전진과 후진을 할 수 있다.
example :
fseek(write, -3, SEEK_END)
-파일 끝부분 부터 처음 방향으로 3칸 간다.
fseek(write, 0, SEEK_SET)
-파일 포인터를 처음으로부터 끝방향으로 0칸 간다.
fseek(write, 8, SEEK_CUR)
-현재 파일 포인터가 있는 곳 부터 끝방향으로 8칸 간다.
소스 코드 : main.c
#include <stdio.h>
void main(void)
{
int returnValue = 0;
FILE *write = 0, *read = 0;
char szBuffer[256] = { 0, };
fopen_s(&write, "E:\\300\\112\\file.txt", "w+");
if (write == NULL)
{
puts("fail : create file");
}
else
{
printf_s("기록 전 파일 포인터의 위치 : %d\n", ftell(write));
fputs("write text", write);
puts("write text");
printf_s("기록 후 파일 포인터의 위치 : %d\n", ftell(write));
puts(" 파일 위치를 처음 이동");
returnValue =fseek(write, 6, SEEK_SET);
printf_s(" call fseek : 6, SEEK_SET 호출 후 파일 포인터의 위치 : %d\n", ftell(write));
fputs("call fseek : 6, SEEK_SET ", write);
fclose(write);
// 파일 읽기 모두로 생성하여 확인
fopen_s(&read, "E:\\300\\112\\file.txt", "r");
if (read == NULL)
{
puts("faild read file");
}
else
{
fgets(szBuffer, sizeof(szBuffer), read);
puts(szBuffer);
fclose(read);
}
}
}
결과

#c언어입분, #C언어, #fseek, #SEEK_SET, #SEEK_CUR, #SEEK_END, #파일포인터이동