我在2小时前发过一篇关于我几天前遇到的问题的帖子,我也在寻找解释...
https://stackoverflow.com/questions/25281294/c-cout-float-fail-while-printf-do-the-job
我和cout的行为完全相同,cout根本不喜欢漂浮...
我是一个单独的线程UserInterface,用openGL制作,在我主线程的按钮上附加了一个回调函数。
class ObjectA//My class
{
private:
float light;
float surface;
float height;
public:
ObjectA();
~ObjectA();
float r_light();
float r_surface();
float r_height();
void render(int x, int y); // Not implemented when bug occured
}
ObjectA::ObjectA(void)
{
light = 0;
surface = 0;
height = 0;
}
float ObjectA::r_light()
{
return this->light;
}
void displayResult(ObjectA * a) //The callback function attached to the UserInterface-button
{
cout << a->r_light() << endl;
}
当我运行它时,程序很难崩溃,我不得不手动完成这个过程...... 我唯一的解决方案是用printf替换cout,但我并不喜欢它。
任何人都知道为什么我无法宣传这个价值?
答案 0 :(得分:0)
知道了,我的朋友遇到了同样的问题。
_setmode(_fileno(stdout), _O_TEXT);
cout恢复正常行为。他告诉我一些关于VC ++编译器和openGL旧版本的信息。 (如果我理解的话,初始openGl世界以某种方式搞砸stdout)