ページ 1 / 1
fscanf
Posted: 2010年10月11日(月) 21:13
by 図示王丸
fscanf関数っていったい何をする関数なのでしょうか?
参考書を読んでも理解できません(汗)
ご教授願います
Re:fscanf
Posted: 2010年10月11日(月) 21:59
by パコネコ
何をするか?
と言われればデータを読み取るのではないでしょうか?
例えば…(あくまでも簡単にいえばです)
テキスト(それ以外も…)データから必要なデータを拾ってくるのに使います。
=========
scanf関数はわかりますでしょうか?
あれの場合自分で入力したものを変数に代入します。
ですがfscanf関数では、自分で入力する代わりに指定したファイル?から
入力されると考えればわかりやすいと思います。
何か問題発言があったらフォローしてください…
=========
boxさん
すいません、ちょっとかぶったかも…

Re:fscanf
Posted: 2010年10月11日(月) 22:02
by box
scanf関数のことはおわかりなのでしょうか?
Re:fscanf
Posted: 2010年10月12日(火) 08:11
by naohiro19
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, ...); //ユニコード文字列用

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