fscanf

 

書式
int fscanf(FILE *fp,const char *format, ...);

機能
ポインタfpの指すストリームからformatにしたがってデータを読み込み、formatで指定した書式形式で引数(ポインタ)の指す変数へ格納する。
書式指定形式 : % [代入抑止] [最大文字数] [ h | l | L ] [変換指定子]
書式指定形式の4項目の内、省略できないのは変換指定子だけである。
[代入抑止]
・*
    *の位置にあるデータは無視する。

[最大文字数]
・数値
    0以外の十進数で指定し、これを超えたデータは無視する。

[h | l | L]
・h
    d,i,o,u,x,X : short型かunsigned short型を示す。
    n : short型へのポインタを示す。
・l
    d,i,o,u,x,X : long型かunsigned long型を示す。
    n : long型へのポインタを示す。
    e,E,f,F,g,G : double型を示す。
・L
    e,E,f,F,g,G : long double型を示す。

[変換形式]
・d,i
    十進値を読み込む。
・u
    符号なし十進値を読み込む。
・o
    八進値を読み込む。
・x,X
    十六進値を読み込む。
・e,E,f,g,G
    浮動小数点を読み込む。
・c
    文字を読み込む。最大文字数を形式指定して文字列の様にしても、
    細かく言えば一文字ずつ読み込むのでナル文字(¥0)は付かない。
・s
    文字列として読み込む。空白を文字としては受け付けないため、
    文字列に含められない。文末にナル文字(¥0)が自動付加される。
・p
    void型へのポインタ。
・n
    %nまでに読み込んだ文字数を整数型ポインタの引数に格納する。
・[...]
    .は一文字を現し、一文字以上を指定する。
    括弧内の...と同じ並びの文字列を読み込み、^...とした場合は
    ...文字列以外を読み込む。
    -を含む場合、[-...][...-][^-...][^...-]以外は未定義。
・%
    %を無視。

戻り値
格納した文字数。エラーと終端のときはEOF。

ヘッダーファイル
stdio.h

 

使用例

FILE *fp;
int i,abc[3];
int xyz[] = {11,22,33};
fp = fopen("***", "w+");
fprintf(fp,"%d %d %d\n",xyz[0],xyz[1],xyz[2]);
rewind(fp);
fscanf(fp,"%d %d %d\n",&abc[0],&abc[1],&abc[2]);