L = fscanf(fd, format)
List L;
Integer fd;
String format;
【詳細】
fscanf(fd, format)は,fd = fopen() でオープンしたファイルから
format で指定した書式でデータを読み込み,データからなるリスト
を返す。整数型,実数型,文字列型のデータを読み込める。
書式は,C言語の関数 scanf() の書式と同じものを指定する。
変換を表すには,パーセント %,フィールド幅(オプション),
変換文字を指定する。変換文字には,次の文字がある。
%d, %u, %o, %x, %X, %i | : | 整数型 |
%e, %E, %f, %g, %G | : | 実数型 |
| : | (%lf等は倍精度, %hf等は単精度) |
%c, %s | : | 文字列型 |
fscanf(0,format)は,標準入力から読み込む。
fscanf(file,format)は,ファイル file をオープンし,
fortmat で指定した書式でデータを読み込み,ファイルを閉じる。
データを 1 度だけ読み込む場合は,この方法が便利である。
ただし,データを何度も読み込む場合は,ファイルのオープン
とクローズが繰り返されるので効率が非常に悪い。
【例題】
ファイル afo を読み込み用にオープンし,fscanf() でデータを読み込む。
if ((fd = fopen("afo", "r")) < 0) {
error("Can't open %s", "afo");
}
{a, b, c} = fscanf(fd2, "%d %lf %s");
fclose(fd);
【参照】