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
使用例
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]);