namespace std {
long long int wcstoll(const wchar_t* nptr, wchar_t** endptr, int base);
}
概要
ワイド文字列nptrをlong long型の整数に変換する。文字列はbaseで指定された基数に従って解釈される。
解釈の規則は、マルチバイト文字列版のstd::strtoll()と同じである。
endptrが非nullptrの場合、変換が終了した位置の文字へのポインタがそこに格納される- 基数
baseは2〜36、または0の値をとる。0の場合は、0x/0Xで始まれば16進数、0で始まれば8進数、それ以外は10進数として解釈される
戻り値
- 変換可能ならば変換後の数値を返す
- 変換後の数値が
long longの範囲外の場合、その型の最大値または最小値を返し、errnoにERANGEを設定する - 変換不可能ならば
0を返す
備考
- 変換できたかどうかは、戻り値ではなく
endptrがnptrから進んだかどうかで判定する
例
#include <cwchar>
#include <iostream>
int main()
{
wchar_t* end = nullptr;
// 16進数として変換する
long long a = std::wcstoll(L"ff", &end, 16);
std::wcout << a << std::endl;
// 変換が終了した位置以降の文字列
std::wcout << std::wcstoll(L"12abc", &end, 10) << std::endl;
std::wcout << end << std::endl;
}
出力
255
12
abc
バージョン
言語
- C++11
処理系
- Clang: 3.4 ✅
- GCC: 4.7.1 ✅
- Visual C++: 2019 ✅
関連項目
wcstolwcstoulwcstoullstd::strtoll(): マルチバイト文字列版