SCNiMAX | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


SCNiMAX

概要

intmax_t型に対する scanf関数の変換指定に使う文字列。

ヘッダ

inttypes.h

形式

#define SCNdMAX “lli”

置換結果

intmax_t型の値を入力する際に、scanf関数の変換指定に使う文字列。

詳細

たとえば、intmax_t型が long long型に相当する場合、変換指定に使う文字列は “lli” となるべきであり、SCNiMAXマクロは、そのように置換される。
なお、置換結果に “%” は含まれていないため、連続する文字列リテラルが連結されることを利用して、「“%” SCNiMAX」のように使う。

注意

使用例

#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>

int main(void)
{
    const char s[] = "1000";

    intmax_t a;
    sscanf(s, "%" SCNiMAX, &a);
    printf("%" PRIiMAX "\n", a);
}

実行結果:

1000

関連

printf関数と違い、scanf関数の変換指定子 “d” と “i” は異なる意味を持つため、SCNdMAXマクロもあるが異なる意味を持つものである。

解説章


参考リンク


更新履歴

’2018/5/11 用語を統一(文字列定数 -> 文字列リテラル)

’2018/4/15 SCNdMAX と同じ意味であるという記述を削除。異なるものである。

’2018/2/1 printf、scanf系の関数で使う用語を、C言語編全体で統一する修正を行った。

’2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る