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, #파일포인터이동



+ Recent posts