目次:
定義-Scanfの意味?
Cプログラミング言語では、scanfはstdin(つまり、リダイレクトされない限り通常はキーボードである標準入力ストリーム)からフォーマットされたデータを読み取り、指定された引数に結果を書き込む関数です。
この関数は、同じ機能を持つがデータのソースのみが異なる関数のファミリに属します。 たとえば、fscanfは入力をファイルストリームから取得しますが、sscanfは入力を文字列から取得します。
TechopediaはScanfについて説明します
scanf関数には、次のプロトタイプ/署名があります。
int scanf(const char * format、…);
どこ
- int(整数)は戻り型です
- formatは、型指定子を含む文字列です(以下を参照)
- "…"(省略記号)は、関数が可変数の引数を受け入れることを示します。 各引数は、変換結果が書き込まれるメモリアドレスである必要があります
単純型指定子は、パーセント(%)記号と、型を示すアルファ文字で構成されます。 以下に、scanfで認識される型指定子の例をいくつか示します。
- %c -キャラクター
- %d -符号付き整数
- %x - 16進形式の符号なし整数
- %f -浮動小数点
- %s -文字列
この関数は、標準入力ストリームから入力を読み取って機能し、「format」の内容をスキャンして形式指定子を探し、2つを一致させようとします。 成功すると、関数は渡された引数に結果を書き込みます。
たとえば、関数呼び出しが
scanf( "%c%d"、&var1、&var2);
ユーザーが「a1」と入力すると、関数は「a」を「var1」に、「1」を「var2」に書き込みます。 ただし、関数呼び出しが
scanf( "%x"、&var);
同じ入力が16進数「a1」として読み取られます。これは10進数で161です。
関数は次の値を返します。
- > 0 -正常に変換および割り当てられたアイテムの数。
- 0 -アイテムは割り当てられていません。
- <0 -読み取りエラーが発生したか、割り当てが行われる前にファイルの終わり(EOF)に達しました。
