目次から探す
fscanf関数の応用
fscanf関数
は、ファイルからデータを読み込む際に非常に便利な関数です。
これまでに学んだ基本的な使い方に加えて、ファイルのデータを変数や配列に格納する方法についても解説します。
ファイルのデータを変数に格納する方法
まずは、ファイルからデータを読み込んで変数に格納する方法を見ていきましょう。
以下の例では、ファイルから整数値を1つ読み込んで、変数に格納しています。
#include <stdio.h>
int main() {
FILE *fp;
int num;
// ファイルを開く
fp = fopen("data.txt", "r");
// ファイルから整数値を読み込む
fscanf(fp, "%d", &num);
// 読み込んだ値を表示する
printf("読み込んだ値: %d\n", num);
// ファイルを閉じる
fclose(fp);
return 0;
}
上記の例では、fopen関数
を使ってファイルを開き、fscanf関数
を使ってファイルから整数値を読み込んでいます。
fscanf関数
の第1引数にはファイルポインタ、第2引数には書式指定子、第3引数以降には読み込んだ値を格納する変数のアドレスを指定します。
ファイルのデータを配列に格納する方法
次に、ファイルからデータを読み込んで配列に格納する方法を見ていきましょう。
以下の例では、ファイルから整数値を複数個読み込んで、配列に格納しています。
#include <stdio.h>
#define MAX_SIZE 100
int main() {
FILE *fp;
int numbers[MAX_SIZE];
int i, count;
// ファイルを開く
fp = fopen("data.txt", "r");
// ファイルから整数値を読み込む
count = 0;
while (fscanf(fp, "%d", &numbers[count]) != EOF) {
count++;
}
// 読み込んだ値を表示する
printf("読み込んだ値: ");
for (i = 0; i < count; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
// ファイルを閉じる
fclose(fp);
return 0;
}
上記の例では、fscanf関数
をループさせることで、ファイルから整数値を複数個読み込んでいます。
fscanf関数
がEOF
(End of File)を返すまでループを繰り返し、読み込んだ値を配列に格納しています。
以上が、fscanf関数
の応用的な使い方についての解説です。
ファイルからデータを変数や配列に格納することで、より柔軟なデータ処理が可能になります。
是非、実際に試してみてください。