C言語でファイルの一部を編集する方法
C言語では、fseek関数とfwrite関数を使用してファイルの一部を書き換えることができます。
まず、修正するファイルはfopen関数で開き、モードをrb+に指定し、二進数読み書きモードで開く
次に、fseek関数でファイルポインタが必要な位置に移動させます。fseek関数は3つの引数を持っています。1つ目の引数はファイルポインタ、2つ目の引数はオフセット(移動させるバイト数)、3つ目の引数はオフセットの開始位置で、SEEK_SET(ファイルの頭からのオフセット)、SEEK_CUR(現在の位置からのオフセット)、SEEK_END(ファイルの末尾からのオフセット)のいずれかです。
続いて、fwrite関数を使用して、変更された内容をファイルに書き込みます。fwrite関数は4つの引数を取り、1つめの引数は書き込まれるデータへのポインタ、2つめの引数は各データ項目のサイズ(バイト単位)、3つめの引数は書き込まれるデータの数、4つめの引数はファイルポインタです。
最後に fclose 関数でファイルをクローズします。
サンプルコードを次に示します。
#include <stdio.h>
int main() {
FILE *file;
char data[100];
// 打开文件
file = fopen("example.txt", "rb+");
// 定位到需要修改的位置
fseek(file, 10, SEEK_SET);
// 修改内容
sprintf(data, "New Content");
// 写入文件
fwrite(data, sizeof(char), strlen(data), file);
// 关闭文件
fclose(file);
return 0;
}
例に示したコードでは、「example.txt」という名前のファイルが開かれ、ファイルポインタは10番目のバイトの位置に位置付けられ、文字列「New Content」がファイルに書き込まれます。