fscanf関数っていったい何をする関数なのでしょうか?
参考書を読んでも理解できません(汗)
ご教授願います
fscanf
Re:fscanf
MSDNより
>fscanf 関数は、stream の現在位置から argument (ある場合) で指定された位置にデータを読み込みます。
>argument は、format で指定された型指定子に対応する型の変数を指す必要があります。
>format は、入力フィールドの解釈を制御し、形式および機能は scanf の引数 format と同じです。
>format の詳細については、「scanf」を参照してください。重なり合う文字列間でコピーした場合の動作は未定義です。
int fscanf(FILE* stream, const char *format, ...); //マルチバイト文字列用
int fwscanf(FILE* stream, const wchar_t *format, ...); //ユニコード文字列用

>fscanf 関数は、stream の現在位置から argument (ある場合) で指定された位置にデータを読み込みます。
>argument は、format で指定された型指定子に対応する型の変数を指す必要があります。
>format は、入力フィールドの解釈を制御し、形式および機能は scanf の引数 format と同じです。
>format の詳細については、「scanf」を参照してください。重なり合う文字列間でコピーした場合の動作は未定義です。
int fscanf(FILE* stream, const char *format, ...); //マルチバイト文字列用
int fwscanf(FILE* stream, const wchar_t *format, ...); //ユニコード文字列用

Re:fscanf
すでに言われているようにまずscanf関数についてある程度理解している必要があります。
ある程度の知識があるとした上でfscanf関数について自己流の説明をさせていただきます。
scanf系の関数は書式付文字列の入力をするための関数です。
fscanf関数やsscanf関数が同系統の関数です。
これらの関数の違いは入力元の対象です。
scanf→標準入出力(コンソール)
fscanf→ファイル
sscanf→文字列
以上のように異なる入力元から書式付文字列を読み込みますが、その入力元の指定部分以外はどれも同じような感覚で使えます。
気をつけなければならないのはscanf関数は入力待ちからエンターキーを押すまでが入力の対象ですが、
fscanf関数はファイルの頭(あるいは指定した位置)から書式で指定した分(あるいはファイルの末端)までが対象です。
ですから、現在ファイルをどれだけ読み取ったのかを意識する必要があります。
簡単な説明でしたが、間違いがあればご指摘おねがいします。
ある程度の知識があるとした上でfscanf関数について自己流の説明をさせていただきます。
scanf系の関数は書式付文字列の入力をするための関数です。
fscanf関数やsscanf関数が同系統の関数です。
これらの関数の違いは入力元の対象です。
scanf→標準入出力(コンソール)
fscanf→ファイル
sscanf→文字列
以上のように異なる入力元から書式付文字列を読み込みますが、その入力元の指定部分以外はどれも同じような感覚で使えます。
気をつけなければならないのはscanf関数は入力待ちからエンターキーを押すまでが入力の対象ですが、
fscanf関数はファイルの頭(あるいは指定した位置)から書式で指定した分(あるいはファイルの末端)までが対象です。
ですから、現在ファイルをどれだけ読み取ったのかを意識する必要があります。
簡単な説明でしたが、間違いがあればご指摘おねがいします。