我正在尝试在 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 的行为方式相同。
您的格式说明符错误。应该是
printf("%f \n", c);
您的格式字符串错误。
您可以只使用 iostreams 并在很长一段时间内完成格式字符串:
std::cout << c << '\n';