C++ ライブラリ・リファレンス

ファイル内の位置の再設定

ファイル内の読み込み位置と書き込み位置を変更することができます。そのためには次のようなツールがあります。

fstream aFile の位置再設定の例を次に示します。


streampos original = aFile.tellp();     //現在の位置の保存
aFile.seekp(0, ios::end);               //ファイルの最後に位置を再設定
aFile << x;                     //データをファイルに書き込む
aFile.seekp(original);                  //元の位置に戻る

seekg (seekp) は、1 つまたは 2 つの引数を受け取ります。引数を 2 つ受け取るときは、第 1 引数は、第 2 引数で指定した seek_dir 値が示す位置からの相対位置となります。次に例を示します。この例では、ファイルの最後から 10 バイトの位置に設定されます。


aFile.seekp(-10, ios::end);

一方、次の例では現在位置から 10 バイト進められます。


aFile.seekp(10, ios::cur);


注 -

テキストストリーム上での任意位置へのシーク動作はマシン依存になります。ただし、以前に保存した streampos の値にいつでも戻ることができます。