Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 1.94 KB

File metadata and controls

66 lines (50 loc) · 1.94 KB

SCNbN

  • cinttypes[meta header]
  • macro[meta id-type]
  • cpp26[meta cpp]
// N はビット幅 (8, 16, 32, 64 など)
#define SCNbN implementation-defined

概要

<cstdint>の固定幅整数型を、std::scanf系関数で2進数として入力するための変換指定子を表すマクロ。"%" SCNb16 のように文字列リテラルと連結して書式文字列を構成する。

C23で<inttypes.h>に追加されたマクロであり、C++26で<cinttypes>に取り込まれた。

対象とする整数型に応じて、以下のマクロが定義される (N8/16/32/64などのビット幅)。

マクロ 対象の型
SCNbN intN_t / uintN_t
SCNbLEASTN int_leastN_t / uint_leastN_t
SCNbFASTN int_fastN_t / uint_fastN_t
SCNbMAX intmax_t / uintmax_t
SCNbPTR intptr_t / uintptr_t

#include <cinttypes>
#include <cstdint>
#include <cstdio>

int main()
{
  std::uint16_t x = 0;
  std::sscanf("1101", "%" SCNb16, &x); // "1101"を2進数として解釈する
  std::printf("%d\n", x);
}
  • SCNb16[color ff0000]
  • std::sscanf[link /reference/cstdio/sscanf.md.nolink]
  • std::printf[link /reference/cstdio/printf.md]

出力

13

バージョン

言語

  • C++26

処理系

関連項目

  • PRIbN, PRIBN: 固定幅整数型を2進数として出力するための変換指定子

参照