最終更新日時:
が更新

履歴 編集

function
<cinttypes>

std::wcstoimax(C++11)

namespace std {
  intmax_t
    wcstoimax(const wchar_t* nptr,
              wchar_t** endptr,
              int base);
}

概要

ワイド文字列nptrを、最大幅の符号付き整数型 intmax_t に変換する。文字列はbaseで指定された基数に従って解釈される。

endptrが非nullptrの場合、変換が終了した位置の文字へのポインタがそこに格納される。

基数baseは 2〜36 または 0 の値を取る。baseが0の場合、

  • 文字列の先頭が0xまたは0Xのときは16進数
  • 文字列の先頭が0のときは8進数
  • その他のときは10進数

として変換する。

この関数は、std::strtoimax()のワイド文字列版である。

戻り値

  • 変換可能ならば変換後の数値。
  • 変換後の数値がintmax_tの範囲外の場合、INTMAX_MAXまたはINTMAX_MIN
  • 変換不可能なら0を返す。

備考

  • 変換後の数値がintmax_tの範囲を超えるときは、errnoERANGEが設定される。

#include <iostream>
#include <cinttypes>

int main()
{
  wchar_t* end = nullptr;
  std::intmax_t x = std::wcstoimax(L"777", &end, 8);

  std::cout << x << std::endl;
}

出力

511

バージョン

言語

  • C++11

関連項目

参照