C ++很长的问题

时间:2016-02-21 09:44:16

标签: c++ long-long

我一直在使用签名长多头并且遇到了奇怪的问题 - 即行为不一致。即。

long long i;
printf("%d", i);

这会打印出与i的实际值无关的值(这也与cout有关)。

它还具有%的随机行为,即

if(i % x == 0)
        //some code

这有时会运行,即如果i = 15x = 5它不会返回true,那么if语句就不会运行代码。

由于某种原因,它会在x = 7上返回true。

我认为这可能是编译器的错误,我认为它只是g ++编译器(它在竞争中)。

任何减轻这种情况的方法或为什么这样做都将非常感激。

1 个答案:

答案 0 :(得分:0)

要使用printf样式语法打印各种整数类型需要可怕的语法 - 我建议使用C ++类型安全的iostreams。