数値の形式は、std::strtol の 10 引数に値 base を指定した場合に期待されるものと同じです。
signedchar* または unsignedchar*
signedshort* または unsignedshort*
signedint* または unsignedint*
signedlong* または unsignedlong*
signedlonglong* または unsignedlonglong*
std::intmax_t* または std::uintmax_t*
std::size_t*
std::ptrdiff_t*
N/A
b(C++26)
符号なし 2進整数 に一致します。
数値の形式は、std::strtoul の 2 引数に値 base を指定した場合に期待されるものと同じです。
i
整数 に一致します。
数値の形式は、std::strtol の 0 引数に値 base を指定した場合に期待されるものと同じです(基数は最初に解析された文字によって決定されます)。
u
符号なし 10進整数 に一致します。
数値の形式は、std::strtoul の 10 引数に値 base を指定した場合に期待されるものと同じです。
o
符号なし 8進整数 に一致します。
数値の形式は、std::strtoul の 8 引数に値 base を指定した場合に期待されるものと同じです。
x X
符号なし 16進整数 に一致します。
数値の形式は、std::strtoul の 16 引数に値 base を指定した場合に期待されるものと同じです。
n
これまでに読み取られた文字数を返します。
入力は消費されません。代入カウントは増加しません。
指定子に代入抑制演算子が定義されている場合、動作は未定義です。
a(C++11) A(C++11) e E f F(C++11) g G
浮動小数点数 に一致します。
数値の形式は、std::strtof が期待するものと同じです。
N/A
N/A
float*
double*
N/A
N/A
N/A
N/A
longdouble*
p
ポインタ を定義する実装定義の文字シーケンスに一致します。
printf ファミリの関数は、%p 書式指定子を使用して同じシーケンスを生成する必要があります。
N/A
N/A
void**
N/A
N/A
N/A
N/A
N/A
N/A
注釈
n 以外のすべての変換指定子について、指定されたフィールド幅を超えず、かつ変換指定子が期待するものと正確に一致するか、またはそれが期待するシーケンスのプレフィックスである最長の入力文字シーケンスがストリームから消費されます。この消費されたシーケンスの後の最初の文字(存在する場合)は読み取られずに残ります。消費されたシーケンスの長さがゼロであるか、消費されたシーケンスを上記のように変換できない場合、照合失敗が発生します。ただし、ファイル終端、エンコーディングエラー、または読み取りエラーがストリームからの入力を妨げた場合は入力失敗となります。
異なる行で入力された2つの整数(2番目の
%
d
が最初の入力で残された改行を消費する)または同じ行でスペースまたはタブで区切られた2つの整数(2番目の
%
d
がスペースまたはタブを消費する)を読み取ります。
The conversion specifiers that do not consume leading whitespace, such as
%
c
, can be made to do so by using a whitespace character in the format string: