/* -*- MaTX -*- * * 【名前】 * fscanf() - ファイルから書式付きでデータを読み込む * * 【形式】 * 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); * * 【関連項目】 * fopen(), fclose(), fprintf(), fgets(), fread(), fwrite() */