目前,我有以下内容:
float some_function(){
float percentage = 100;
std::cout << "percentage = " << percentage;
//more code
return 0;
}
这给出了输出
percentage = 100
但是,当我像这样添加一些std::endl时:
float some_function(){
float percentage = 100;
std::cout << "percentage = " << percentage << std::endl;
//more code
return 0;
}
这给出了输出:
percentage = 1000x6580a8
添加更多endl仅会打印出更多0x6580a8。
是什么原因造成的?这是在Ubuntu 10.04上使用gcc 4.4.3编译的。
最佳答案
您的代码是完全有效的。我怀疑您可能是在代码的其他部分破坏堆栈或堆,这是最可能的原因。 0x6580a8太短,无法成为对象地址。而且,他永远不会在同一程序的两次运行中获得相同的地址。
关于c++ - C++ cout与float产生奇怪的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3247632/