以0开头的值初始化long-long会导致奇怪的值

initialize long long with value starting with 0 leads to strange values

本文关键字:初始化 开头 long-long      更新时间:2023-10-16

这里发生了什么?

long long value;
value = 001111011112;

在Visualstudio调试中,该值显示为153358922。

如果数字不是以0开头,那么一切都是正确的。。。

有什么建议可以继续使用我的初始化风格吗?

在C++中,以0开头的数字是八进制(以8为底(文字。

如果你想用前导零打印这个值,你可以这样做:

long long value;
value = 1111011112;
cout << setw(12) << setfill('0') << value;