我一直在使用签名长多头并且遇到了奇怪的问题 - 即行为不一致。即。
long long i;
printf("%d", i);
这会打印出与i的实际值无关的值(这也与cout有关)。
它还具有%
的随机行为,即
if(i % x == 0)
//some code
这有时会运行,即如果i = 15
和x = 5
它不会返回true,那么if语句就不会运行代码。
由于某种原因,它会在x = 7
上返回true。
我认为这可能是编译器的错误,我认为它只是g ++编译器(它在竞争中)。
任何减轻这种情况的方法或为什么这样做都将非常感激。
答案 0 :(得分:0)
要使用printf样式语法打印各种整数类型需要可怕的语法 - 我建议使用C ++类型安全的iostreams。