#include <stdio.h> int fscanf(FILE *stream, const char *format [,argument list]) stream : FILE 構造体へのポインタ format : フォーマット argument : 引数(変数のアドレス等のリスト) format は, 1)空白文字(空白( '' ),タブ( '\t' ),または,改行( '\n' )): 次に空白文字以外の文字が現れるまで入力データ中の空白文字を読 み込みますが,格納は行いません. 2)% 記号以外の非空白文字: 一致する空白文字を読み込みますが,格納は行いません. 3)% 記号に続くフォーマット指定: 入力データ内の文字を読み込んで,指定された型に変換し,対応す る引数の示す位置に格納されます. の 3 つから構成されます. フォーマット指定は,常に % 記号で始まり,一般的には次のような形をして います. %[*][width][{h|l|ll|L}]type 例えば, %10d は,10 桁以下の整数を入力するための指定です. type は必須の項目で,入力するデータが文字か,数値か等を決定します. 以下に示すような種類があります. 文字 引数の型 想定する入力の型 d int へのポインタ 10 進整数 o int へのポインタ 8 進整数 x int へのポインタ 16 進整数 i int へのポインタ 8, 10, 16 進整数 u unsigned int へのポインタ 符号無し 10 進整数 U unsigned long へのポインタ 符号無し 10 進整数 e,E,f float へのポインタ 浮動小数点値 g,G c char へのポインタ 1 個の文字 s 文字配列へのポインタ 文字列 * を指定すると,次のデータは指定された型のデータとして解釈されますが, 引数には代入されません. width は,入力する最大文字数を指定します. h,l, ll,L は,以下のように,引数のサイズを規定します h 引数が short int であることを示します l 引数が,long int または double であることを示します ll 引数が,long long int であることを示します L 引数が,long double であることを示します
#include <stdio.h> int main() { double x; int i; char ch; char str[81]; FILE *stream; i = 12; x = 10.23; /* ファイルへの出力 */ stream = fopen("data", "w"); fprintf(stream, "%d %f\n", i, x); fputc('h', stream); fputc('\n', stream); fputs("This is a test", stream); fclose(stream); /* ファイルからの入力 */ stream = fopen("data", "r"); fscanf(stream, "%d %lf %c %s", &i, &x, &ch, str); printf("読み込まれたデータは\n"); printf(" %d %f %c %s\n", i, x, ch, str); return 0; }
読み込まれたデータは 12 10.230000 h This
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |