"error C2041: 指定された文字 '8' は、基数 '8' に適切な数字ではありません" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2041: 指定された文字 '8' は、基数 '8' に適切な数字ではありません。

ソース(バグ有り):

#include <stdio.h>

int main()
{
printf( "%d\n", _getmaxstdio());
_setmaxstdio(0048);
printf( "%d\n", _getmaxstdio()); }


原因:
指定した文字は8進数あるいは16進数ではありません。

0で始まる場合は以下と解釈されます。

数字の先頭が 0 のとき→8 進数

0x のとき→16 進数

上記以外の時→ 10 進数

対処:
指定した数値を見直します。

この例では 0048 は8進数、16進数とも見なされないためエラーとなっています。


ソース(修正済み):

#include <stdio.h>

int main()
{
printf( "%d\n", _getmaxstdio());
_setmaxstdio(2048);
printf( "%d\n", _getmaxstdio()); }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]