C++ における seekg の使用方法

C++におけるseekgは入力ストリーム(istream)の読み込み位置を設定する関数です。完全な宣言は次のとおりです。

istream& seekg(streampos pos);
istream& seekg(streamoff off, ios_base::seekdir dir);

ストリーム初期位置から始まるバイト数オフセットを streampos が表し、現在の位置からのバイト数オフセットを streamoff が表す。

  1. ios_base::beg:ストリーム先頭からのオフセット量を求める。
  2. ios_base::cur: 相対位置からオフセットを計算します。
  3. ios_base::end: オフセットはストリームの末尾位置に対して計算されます。

seekg関数は、読み取り位置を指定された位置に設定し、以降の読み取りがその位置から始まるようにするものです。これにより、ファイルの読み取り時に指定されたバイト数をスキップしたり、読み取り位置を再配置したりすることができます。

以下はseekg関数の使い方の例の一部です。

  1. ファイルの先頭に読み取り位置を設定する。
ifstream file("data.txt");
file.seekg(0);
  1. ファイルポインタをファイルの末尾から10バイト目に設定する。
ifstream file("data.txt");
file.seekg(-10, ios_base::end);
  1. 現在の位置から20バイト先の位置に読み位置を設定する:
ifstream file("data.txt");
file.seekg(20, ios_base::cur);

seekg 関数は入力ストリームオブジェクトへの参照を返します。この参照を通じて他の入力ストリームのプロパティを設定できます。ただし、seekg を呼び出す前にファイルストリームが開かれていることを確認してください。そうでないとエラーが発生する可能性があります。

bannerAds