fscanf関数
を使用することで、ファイルからのデータの読み込みや文字列・数値の読み込みが簡単に行えます。
この記事では、C言語のfscanf関数
の使い方について詳しく解説します。
さらに、CSVファイルの読み込みやフォーマットに基づいたデータの読み込み、複数のファイルからの読み込みなど、応用例も紹介します。
fscanf関数とは
fscanf関数
は、C言語の標準ライブラリ関数の一つであり、ファイルからデータを読み取るために使用されます。
scanf関数
と同様に、指定されたフォーマットに従ってデータを変換し、変数に格納します。
fscanf関数の概要
fscanf関数
の基本的な構文は以下の通りです。
int fscanf(FILE *stream, const char *format, ...);
stream
ファイルポインタを指定します。
読み取り対象のファイルを指定します。
format
フォーマット指定文字列を指定します。
読み取るデータの形式を指定します。
…
読み取ったデータを格納する変数を指定します。
fscanf関数の基本的な使い方
fscanf関数
は、C言語でファイルからデータを読み込むために使用される関数です。
この関数を使うことで、ファイルから文字列や数値を読み込むことができます。
ファイルからの読み込み
まず、fscanf関数
を使ってファイルからデータを読み込む方法を見ていきましょう。
以下のようなファイルがあるとします。
data.txt
-----------
Apple
Banana
Cherry
-----------
このファイルから1行ずつデータを読み込んで表示するプログラムを作成してみましょう。
#include <stdio.h>
int main() {
FILE *file;
char str[100];
file = fopen("data.txt", "r");
if (file == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
while (fscanf(file, "%s", str) != EOF) {
printf("%s\n", str);
}
fclose(file);
return 0;
}
このプログラムでは、まずファイルを開いています。
fopen
関数の第1引数にはファイル名を、第2引数にはモードを指定します。
モードには、読み込みモードを示す"r"
を指定します。
次に、fscanf
関数を使ってファイルからデータを読み込んでいます。
fscanf
関数の第1引数にはファイルポインタを、第2引数には書式指定子を、第3引数以降には読み込んだデータを格納する変数を指定します。
この例では、%s
という書式指定子を使って文字列を読み込んでいます。
fscanf
関数は、成功した場合には読み込んだデータの数を返し、ファイルの終端に達した場合にはEOF
を返します。
そのため、while
ループの条件式でfscanf
関数の戻り値がEOF
でないかをチェックしています。
文字列の読み込み
次に、fscanf関数
を使って文字列を読み込む方法を見ていきましょう。
以下のようなプログラムを考えます。
#include <stdio.h>
int main() {
char str[100];
printf("文字列を入力してください:");
scanf("%s", str);
printf("入力された文字列は %s です。\n", str);
return 0;
}
このプログラムでは、scanf
関数を使ってキーボードから文字列を入力しています。
scanf
関数の第1引数には書式指定子を、第2引数以降には読み込んだデータを格納する変数を指定します。
この例では、%s
という書式指定子を使って文字列を読み込んでいます。
数値の読み込み
次に、fscanf関数
を使って数値を読み込む方法を見ていきましょう。
以下のようなプログラムを考えます。
#include <stdio.h>
int main() {
int num;
printf("整数を入力してください:");
scanf("%d", &num);
printf("入力された整数は %d です。\n", num);
return 0;
}
このプログラムでは、scanf
関数を使ってキーボードから整数を入力しています。
%d
という書式指定子を使って整数を読み込んでいます。
また、整数を読み込むためには、変数の前に&
を付ける必要があります。
書式指定子の使用
最後に、fscanf関数
で使用できる書式指定子について見ていきましょう。
以下によく使用される書式指定子をいくつか示します。
%d
:10進数の整数を読み込む%f
:浮動小数点数を読み込む%c
:1文字を読み込む%s
:文字列を読み込む
これらの書式指定子を使って、ファイルから数値や文字列を読み込むことができます。
以上が、fscanf関数
の基本的な使い方についての説明です。
ファイルからの読み込みや文字列・数値の読み込み、書式指定子の使用方法を理解して、自分のプログラムに活用してみてください。