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

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

先頭へ戻る

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 に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS