我正在尝试在64位计算机上编译以下简单程序:
#include <cstdio>
int main() {
float a,b,c;
a = 10.5;
b = 20.6;
c = a + b;
printf("%d \n", c);
return 0;
}
我使用以下控制台命令编译它:
g++ -m32 file.cpp
当我执行这样的a.out文件时:
./ a.out -m32
我得到的结果是:
-1610612736
发生了什么事?我究竟做错了什么?在没有-m32标志的情况下编译时会出现伪造的结果。 Gcc的行为方式相同。
答案 0 :(得分:3)
您的格式说明符错误。它应该是
printf("%f \n", c);
答案 1 :(得分:2)
您的格式字符串错误。
您可以使用iostream并使用格式字符串很长一段时间:
std::cout << c << '\n';