先頭へ戻る

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

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

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

先頭へ戻る

SCNdMAX

概要

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

ヘッダ

inttypes.h

形式

#define SCNdMAX "lld"

置換結果

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

詳細

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

注意

使用例

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

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

    intmax_t a;
    sscanf( s, "%" SCNdMAX, &a );
    printf( "%" PRIdMAX "\n", a );

    return 0;
}

実行結果:

1000

関連

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

解説章


参考リンク


------------------------------------------------------------------------

更新履歴

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

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

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

'2018/1/22 新規作成。


------------------------------------------------------------------------

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

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

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー