私たちの多くは、scanfの伝統的な使い方を知っています。 さて、ここではあまり知られていない事実のいくつかがあります
必要な入力の一部だけを読み取る方法は? たとえば、整数または浮動小数点数が続く文字のみを含む入力ストリームを考えてみましょう。 またスキャンのみでの整数または浮いてしまうからなのです。つまり、
入力:”これは値100です”、
出力:値が読み取られている100です
入力:”これは値21.2です”、
出力:値が読み取られている21です。,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
ここで、おそらく先行する文字が何であるかはわかりませんが、最後の値が整数であることは確かにわかります。, 最後の値を整数としてどのようにスキャンできますか?
以下のソリューションは、入力文字列にスペースがない場合にのみ機能します。,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., この場合、次のスペースまたは新しい行まで入力を無視します。 同様に、%*dと書くと、次のスペースまたは新しい行まで整数は無視されます。
上記の事実は、一見すると有用なトリックとしては見えないかもしれません。 その使用法を理解するために、まずfscanf()を見てみましょう。fscanf():ファイルから読み取るためのすべてのclumpsy構文にうんざりしましたか? まあ、fscanfは救助に来る。
int fscanf(FILE *ptr, const char *format, ...)
fscanfは、入力ストリームから読み取るのではなく、ファイルポインタ(ptr)が指すファイルから読み取ります。
次のテキストファイルabcを考えてみましょう。,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
ここで、上記のテキストファイルのcityフィールドのみを読み取り、他のすべてのフィールドは無視します。 Fscanfと上記のトリックの組み合わせは、これを簡単に行います
出力:
CITYhyderbaddelhibangalore
演習:fscanfを使用してファイル内の単!
この記事はNikhil Chakravartulaによって寄稿されています。, GeeksforGeeksが好きで、貢献したい場合は、記事を書いて記事を郵送することもできます[email protected]のメインページに表示されるあなたの記事を参照してくださいし、他のオタクを助けます.