文字列から数値(int32)への変換について
Hamu 2022/01/16(Sun) 21:20
Reputeless 2022/01/17(Mon) 15:12
Siv3D は C/C++ のパース規則と同様に、0 から始まる数はデフォルトで 8 進数と見なします。
したがって 8 や 9 が登場するとエラーになります。
0 から始まる数のパースをやめるか、次のように明示的に基数を指定すると良いです。
# include <Siv3D.hpp> // OpenSiv3D v0.6.3
void Main()
{
Print << ParseInt<int32>(U"08", Arg::radix = 10); // 10 進数としてパース
Print << ParseInt<int32>(U"080", Arg::radix = 10); // 10 進数としてパース
Print << Parse<int32>(U"010"); // 8 進数としてパース
Print << Parse<int32>(U"017"); // 8 進数としてパース
while (System::Update())
{
}
}