C言語 ファイル位置を先頭に戻す - stdio.h - [ rewind ]
2008.09.29 Monday | by LRESULT
ファイル位置を先頭に戻すには、rewind()を使います。
ファイル位置とは、テキストエディタのカーソル(キャレット)位置のようなもので
読み込みと書き込みの基準となる位置です。
書式 | void rewind( FILE *fp ) |
---|---|
機能 | ファイル位置を先頭に戻す |
引数 | FILE *fp : ファイル(ストリーム)ポインタ |
戻り値 | なし |
ファイル位置を先頭に戻すには、
fseek( fp, 0, SEEK_SET );
も、同じ意味となります。
テキストファイル「test.txt」を読み込み、ファイル位置をファイル終端まで移動させて ファイル位置を取得し、rewind()で先頭に戻したところを確認してみます。 |
---|
#include <stdio.h> int main(void) { FILE *fp; char *fname = "test.txt"; fpos_t pos; fp = fopen( fname, "rb" ); if( fp == NULL ){ printf( "%sファイルが開けません¥n", fname ); return -1; } fseek( fp, 0, SEEK_END ); fgetpos( fp, &pos ); printf( "ファイル位置は %dです¥n", pos ); rewind( fp ); fgetpos( fp, &pos ); printf( "ファイル位置は %dです¥n", pos ); fclose( fp ); return 0; } |
ファイル位置は 50です ファイル位置は 0です |
---|
と、表示されます。 最初のfseek()では、読み込んだファイルのサイズを取得しているので ファイルによって変わってきます。 その後、rewind()で先頭にまでファイル位置を戻しています。 |