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

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

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


SCNoMAX

概要

8進数で表現された uintmax_t型の値を入力する際の scanf関数の変換指定に使う文字列。

ヘッダ

inttypes.h

形式

#define SCNoMAX “llo”

置換結果

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

詳細

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

注意

使用例

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

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

    uintmax_t a;
    sscanf(s, "%" SCNoMAX, &a);
    printf("%" PRIuMAX "\n", a);
}

実行結果:

1000

関連

10進数で表現された uintmax_t型の値を入力するには SCNuMAX、16進数の場合は SCNxMAX を用いる。

解説章


参考リンク


更新履歴

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

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

’2018/1/22 新規作成。



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

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

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

Programming Place Plus のトップページへ



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