Loose-Info.com

Last Update 2019/12/24


TOP - C言語 - stdio.h - フォーマット文字列(fscanf, scanf, sscanf)

scanf()などの関数が入力時に使用する、文字列の入力形式および入力内容を記述した文字列です。
変換仕様(「%」から始まる)を含むフォーマット文字列に続き、変換仕様に対応する引数を記述します。
途中の空白文字は無視されます。
フォーマット文字列の記述方法は以下のようになります。

"  値1  AAAA 値2  " ,  値3  ,  値4 

値1, 値2
変換仕様
「%」で始まる引数の出力形式を示した文字列
値3, 値4
引数
値1, 値2に対応する入力値を格納する変数を示すポインタ
AAAA
入力内容とマッチする文字列(任意)

変換仕様の書式は次の通りです。

 値1  値2  値3 

値1(任意)
: フラグ
* hh h l(エル)
値2(任意)
: 最大フィールド幅(10進数文字列)
値3(必須)
: 変換指示子
% d i o u x e, f, g s c [ n

(例)
#include <stdio.h> int main() { char s[100] = "12, 345, 6789"; int n1, n2, n3; int n = sscanf(s, "%d, %d, %d", &n1, &n2, &n3); printf("入力項目数 : %d ---> %d, %d, %d\n", n, n1, n2, n3); return 0; }

実行結果
入力項目数 : 3 ---> 12, 345, 6789