これどうやってするの?
int number;
cin >> number;
数値を 36 進法で入力したい ( 仮定で 36 進法で入力されている )。基数 36 では、A は 10、B は 11、C は 12 などを意味します。「A」が文字ではなく、base 36 の数字であり、「cin >>」がこの目的で機能することを C++ はどのように理解できますか?
これどうやってするの?
int number;
cin >> number;
数値を 36 進法で入力したい ( 仮定で 36 進法で入力されている )。基数 36 では、A は 10、B は 11、C は 12 などを意味します。「A」が文字ではなく、base 36 の数字であり、「cin >>」がこの目的で機能することを C++ はどのように理解できますか?
strtol(l)
これは少し C っぽいですが、プレーンな文字列を入力してから、基数引数 36を使用して整数に変換できます。
基数 2 の整数の有効な数字のセットは 01、基数 3 の整数の有効な数字のセットは 012 などです。基数が 10 を超える場合、有効な数字には、基数 11 の整数の Aa から基数36 の整数の Zzまでのアルファベット文字が含まれます。文字の大文字と小文字は無視されます。デフォルト以外のロケールでは、追加の数値形式が受け入れられる場合があります。
Jesse Good がコメントで指摘しているように、C++11 には、変換を実行できない場合に例外をstd::stol(l)
呼び出しますがスローするものもあります。std::strtol