この記事では、C言語のプログラミング初心者向けに、fopen_s関数
で使えるファイルを開く際のモードについて解説します。
テキストモードやバイナリモード、読み込みモード、書き込みモード、追記モードなど、各モードの特徴や使い方を詳しく説明します。
目次から探す
fopen_sで使える開くモード
C言語ではファイルを開く際に、fopen_s関数
を使用できますが、ファイルを開く際のモードを指定することができます。
以下では、fopen_s
で使える開くモードについて説明します。
読み込みモード
読み込みモードr
では、ファイルを読み取り専用で開きます。
読み取りモードでは、ファイルの内容を読み取ることはできますが、書き込むことはできません。
#include <stdio.h>
int main() {
FILE* file;
errno_t err;
err = fopen_s(&file, "data.txt", "r");
if (err == 0) {
printf("ファイルを正常に開きました。\n");
// ファイルを閉じる
fclose(file);
} else {
printf("ファイルのオープンに失敗しました。\n");
}
return 0;
}
書き込みモード
書き込みモードw
では、ファイルを書き込み専用で開きます。
書き込みモードでは、ファイルに新しいデータを書き込むことができますが、既存のデータは上書きされます。
#include <stdio.h>
int main() {
FILE* file;
errno_t err;
err = fopen_s(&file, "output.txt", "w");
if (err == 0) {
printf("ファイルを正常に開きました。\n");
// ファイルを閉じる
fclose(file);
} else {
printf("ファイルのオープンに失敗しました。\n");
}
return 0;
}
追記モード
追記モードa
では、ファイルを追記専用で開きます。
追記モードでは、既存のデータの末尾に新しいデータを追加することができます。
#include <stdio.h>
int main() {
FILE* file;
errno_t err;
err = fopen_s(&file, "log.txt", "a");
if (err == 0) {
printf("ファイルを正常に開きました。\n");
// ファイルを閉じる
fclose(file);
} else {
printf("ファイルのオープンに失敗しました。\n");
}
return 0;
}
読み込み・書き込み両方に対応した開き方
一度のファイルオープンでファイルの読み込み・書き込み両方行いたい場合は、r+
やw+
のように+
を末尾につけることで行なえます。
読み書き両方行えるr+
やw+
はどちらも同じ意味ですが、a+のみ意味が異なります。
a+
は読み込みは先頭から、書き込みは末尾に追記していくモードになるので気をつけましょう。
以上が、fopen_s
で使える開くモードの一覧です。