fopen_s関数の応用例
ファイルの読み込み
ファイルの読み込みは、fopen_s関数
を使用してファイルをオープンし、fscanf_s関数
を使用してデータを読み取ることができます。
以下に、ファイルから整数を読み込む例を示します。
#include <stdio.h>
int main() {
FILE* file;
int num;
// ファイルをオープン
if (fopen_s(&file, "data.txt", "r") != 0) {
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
// ファイルから整数を読み込む
while (fscanf_s(file, "%d", &num) != EOF) {
printf("%d\n", num);
}
// ファイルをクローズ
fclose(file);
return 0;
}
上記の例では、data.txt
という名前のテキストファイルを読み込みモードでオープンしています。
ファイルから整数を1つずつ読み取り、その値を表示しています。
ファイルの書き込み
ファイルの書き込みも、fopen_s関数
を使用してファイルをオープンし、fprintf_s関数
を使用してデータを書き込むことができます。
以下に、整数をファイルに書き込む例を示します。
#include <stdio.h>
int main() {
FILE* file;
int num;
// ファイルをオープン
if (fopen_s(&file, "data.txt", "w") != 0) {
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
// ユーザーから整数を入力し、ファイルに書き込む
printf("整数を入力してください(0を入力すると終了します):");
while (scanf_s("%d", &num) != EOF && num != 0) {
fprintf_s(file, "%d\n", num);
printf("整数を入力してください(0を入力すると終了します):");
}
// ファイルをクローズ
fclose(file);
return 0;
}
上記の例では、data.txt
という名前のテキストファイルを書き込みモードでオープンしています。
ユーザーから整数を入力し、入力された整数をファイルに書き込んでいます。
0が入力されると入力を終了し、ファイルをクローズします。
以上が、fopen_s関数
を使用したファイルの読み込みと書き込みの基本的な使い方です。
ファイルの操作は注意が必要ですので、エラーハンドリングも適切に行いましょう。
fopen_s関数の注意点
fopen_s関数
を使用する際には、いくつかの注意点があります。
以下では、ファイルパスの指定方法とファイルモードの選択について説明します。
ファイルパスの指定方法
fopen_s関数
では、ファイルのパスを指定する必要があります。
ファイルパスは、ファイルが存在するディレクトリのパスとファイル名を組み合わせたものです。
ファイルパスの指定方法には、絶対パスと相対パスの2つがあります。
絶対パス
絶対パスは、ファイルが存在するディレクトリからルートディレクトリまでのパスを指定します。
例えば、Windowsの場合は C:\Users\username\Documents\file.txt
といった形式です。
相対パス
相対パスは、現在の作業ディレクトリを基準にしたパスを指定します。
例えば、現在の作業ディレクトリが C:\Users\username\Documents
であれば、ファイル名のみを指定することもできます。
また、作業ディレクトリを基準としてdirname\sample.txt
../dirname/sub.txt
のように開くことも可能です。
ファイルモードの選択
fopen_s関数
では、ファイルを開く際のモードを指定する必要があります。
モードには以下のような種類があります。
“r”モード
読み込みモードでファイルを開きます。
ファイルが存在しない場合はエラーとなります。
“w”モード
書き込みモードでファイルを開きます。
ファイルが存在しない場合は新規に作成され、既に存在する場合は、ファイルの内容が上書きされます。
“a”モード
追記モードでファイルを開きます。
ファイルが存在しない場合は新規に作成されます。
既に存在する場合は、ファイルの末尾に追記されます。
“rb”モード
バイナリ読み込みモードでファイルを開きます。
テキストファイル以外のファイルを読み込む場合に使用します。
“wb”モード
バイナリ書き込みモードでファイルを開きます。
テキストファイル以外のファイルに書き込む場合に使用します。
“ab”モード
バイナリ追記モードでファイルを開きます。
テキストファイル以外のファイルに追記する場合に使用します。
以上が、ファイルパスの指定方法とファイルモードの選択に関する注意点です。
正しくファイルパスを指定し、適切なモードを選択することで、fopen_s関数
を効果的に利用することができます。