반응형

C 에서는 파일포인터를 다루는 여러가지

함수들이 제공되는걸로 알고있는데요..

그중에 궁금한건

fseek와 ftell의 기능을 딴 C++의 함수가 존재 하냔 말이죠.

ftell로 파일의 크기를 얻고 fseek로 원하는 곳을 찾아 그곳에

데이터를 써넣는다면 편하잖아요

알려 주시기 바랍니다.

더불어서 ㅡㅡㅋ;;;;

fseek에 대해서 자세히 알려주세요 아직은 겉핡기라서..

여러 옵션이 좀 붙던데 ^^;


----------------------------------------------------------------------------------------


1. 있습니다. fseek과 ftell은 파일을 어떤 모드로 열었느냐에 관계 없이 똑같이 사용할 수 있지만 C++에서는 istream과 ostream용 두가지로 나누어져 있죠.

ifstream infile;

ofstream outfile;

이렇게 선언되었다고 할 때 infile의 경우 fseek과 ftell에 대응하는 메소드는 seekgtellg입니다. 사용법은.

infile.seekg(0, ios::end);

infile.tellg();

이런식입니다. seekg의 첫번째 매개변수는 offset, 두번째는 출발점이죠.(처음부터는ios::beg, 현재부터는 ios::cur)

outfile의 경우 사용법은 같고 메소드 이름이 tellp, seekp 입니다..


2. fseek함수의 프로토타입은 아래와 같습니다.

int  fseek ( FILE * stream , long offset , int origin );

첫번재는 파일의 포인터, 두번째는 offset,세번째는 시작점입니다. 시작점의 종류는 위에서 처럼 세가지가 있습니다. SEEK_SET(처음부터), SEEK_CUR(현재위치부터), SEEK_END(끝부터) 라고 define되어 있네요. 만약 현재 위치로 부터 10바이트 뒤로 이동하고 싶다면

fseek(fp, 10, SEEK_CUR);

하면 되겠죠.

반응형

'C & C++ 관련' 카테고리의 다른 글

Template Functions에 대해 알려주세요.. ㅜ0ㅜ  (0) 2007.03.14
using std에 대해 궁금합니다.  (0) 2007.03.14
long ftell( FILE *stream);  (0) 2007.03.14
Posted by Real_G