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

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

"値1 ○○○○ 値2" , 値3 , 値4

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

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

値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


Copyright(C) 2006-2018 CLAYPOT. All Rights Reserved.