この記事では、C言語でファイルに書き込む方法について解説します。
fopen_s関数
を使ってファイルを開き、fprintf関数
を使ってデータを書き込む方法を学びます。
fopen_s関数とは
fopen_s関数
は、C言語でファイルを開くための関数です。
この関数を使用することで、ファイルを読み込むだけでなく、書き込むこともできます。
fopen_s関数の概要
fopen_s関数
は、以下のような形式で宣言されています。
errno_t fopen_s(FILE** pFile, const char* filename, const char* mode);
この関数は、ファイルポインタを指定されたファイルに関連付けるために使用されます。
引数 | 説明 |
---|---|
pFile | ファイルへのポインタを格納する変数へのポインタ。ファイルが正常にオープンされると、この変数にファイルへのポインタが格納されます。 |
filename | オープンするファイルのパスとファイル名を表す文字列。 |
mode | ファイルを開くモードを指定する文字列。以下のいずれかの値を指定します: |
modeの種類
モード | 説明 |
---|---|
“r” | 読み込みモード。既存のファイルを開きます。ファイルが存在しない場合はエラーになります。 |
“w” | 書き込みモード。新しいファイルを作成します。既存のファイルがある場合は、ファイルの内容が削除されます。 |
“a” | 追記モード。ファイルの末尾にデータを追加します。ファイルが存在しない場合は新しいファイルが作成されます。 |
“rb” | バイナリ読み込みモード。バイナリファイルを読み込みます。 |
“wb” | バイナリ書き込みモード。バイナリファイルを作成します。 |
“ab” | バイナリ追記モード。バイナリファイルの末尾にデータを追加します。 |
読み書き両方行いたい場合は、r+
、w+
のように+
をつけることで行えるようになります。
fopen_s関数の使い方
fopen_s関数
を使用するためには、まずファイルポインタを宣言し、その後でfopen_s関数
を呼び出す必要があります。
以下に、ファイルを書き込む例を示します。
#include <stdio.h>
int main() {
FILE* pFile;
errno_t err;
err = fopen_s(&pFile, "sample.txt", "w");
if (err != 0) {
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
//ファイルへの書き込み処理...
fclose(pFile);
return 0;
}
この例では、まずファイルポインタpFileを宣言し、fopen_s関数
を呼び出しています。
第1引数には、ファイルポインタへのポインタである&pFileを指定し、第2引数には、書き込むファイルのパスであるsample.txt
を指定しています。
ファイルへの書き込みを行うために、第3引数には、書き込みモードであるw
を指定しています。
fopen_s関数の戻り値とエラーハンドリング
fopen_s関数
の戻り値は、エラーコードを表すerrno_t型
です。
エラーコードが0以外の場合、ファイルのオープンに失敗しています。
上記の例では、fopen_s関数
の戻り値をerr変数
に代入し、その値が0以外の場合にエラーメッセージを表示しています。
ファイルのオープンに成功した場合は、fprintf関数
を使用してファイルに書き込んでいます。
ファイルの操作が終了したら、fclose関数
を使用してファイルを閉じることを忘れないようにしましょう。
ファイルへの書き込み
ファイルをオープンした後は、fprintf関数
やfputc関数
などを使用して、データをファイルに書き込むことができます。
以下は、fprintf関数
を使用してファイルに文字列を書き込む例です。
#include <stdio.h>
int main() {
FILE* file;
errno_t err;
// ファイルをオープン
err = fopen_s(&file, "sample.txt", "w");
if (err != 0) {
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
// ファイルに文字列を書き込む
fprintf(file, "Hello, World!");
// ファイルをクローズ
fclose(file);
return 0;
}
上記の例では、fprintf関数
を使用して、ファイルに文字列Hello, World!
を書き込んでいます。
ファイルのクローズ
ファイルへの書き込みが完了したら、必ずファイルをクローズする必要があります。
ファイルをクローズすることで、ファイルへのアクセスが終了し、他のプログラムやプロセスがファイルにアクセスできるようになります。
ファイルをクローズするためには、fclose関数
を使用します。
fclose関数
は、ファイルポインタを引数に取り、ファイルをクローズします。
以下は、ファイルをオープンし、書き込みを行った後にファイルをクローズする例です。
#include <stdio.h>
int main() {
FILE* file;
errno_t err;
// ファイルをオープン
err = fopen_s(&file, "sample.txt", "w");
if (err != 0) {
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
// ファイルに文字列を書き込む
fprintf(file, "Hello, World!");
// ファイルをクローズ
fclose(file);
return 0;
}
上記の例では、ファイルをオープンし、Hello, World!
という文字列をファイルに書き込んでいます。
最後に、fclose関数
を使用してファイルをクローズしています。
以上が、C言語でファイルへの書き込みを行う方法の基本的な説明です。
ファイルへの書き込みは、プログラミングにおいて非常に重要な操作の一つですので、しっかりと理解しておきましょう。