私たちの多くは、scanfの伝統的な使い方を知っています。 さて、ここではあまり知られていない事実のいくつかがあります

必要な入力の一部だけを読み取る方法は? たとえば、整数または浮動小数点数が続く文字のみを含む入力ストリームを考えてみましょう。 またスキャンのみでの整数または浮いてしまうからなのです。つまり、
入力:”これは値100です”、
出力:値が読み取られている100です

入力:”これは値21.2です”、
出力:値が読み取られている21です。,/div>, &a);

printf("Input value read : a = %d", a);
return0;



ここで、おそらく先行する文字が何であるかはわかりませんが、最後の値が整数であることは確かにわかります。, 最後の値を整数としてどのようにスキャンできますか?

以下のソリューションは、入力文字列にスペースがない場合にのみ機能します。,

, &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]のメインページに表示されるあなたの記事を参照してくださいし、他のオタクを助けます.