2

これどうやってするの?

int number;
cin >> number;

数値を 36 進法で入力したい ( 仮定で 36 進法で入力されている )。基数 36 では、A は 10、B は 11、C は 12 などを意味します。「A」が文字ではなく、base 36 の数字であり、「cin >>」がこの目的で機能することを C++ はどのように理解できますか?

4

2 に答える 2

5

strtol(l)これは少し C っぽいですが、プレーンな文字列を入力してから、基数引数 36を使用して整数に変換できます。

基数 2 の整数の有効な数字のセットは 01、基数 3 の整数の有効な数字のセットは 012 などです。基数が 10 を超える場合、有効な数字には、基数 11 の整数の Aa から基数36 の整数の Zzまでのアルファベット文字が含まれます。文字の大文字と小文字は無視されます。デフォルト以外のロケールでは、追加の数値形式が受け入れられる場合があります。

Jesse Good がコメントで指摘しているように、C++11 には、変換を実行できない場合に例外をstd::stol(l)呼び出しますがスローするものもあります。std::strtol

于 2013-09-25T11:34:03.167 に答える