Cout + Float,没有调试错误,在发布运行时崩溃

时间:2014-08-13 12:23:34

标签: c++ floating-point cout

我在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,但我并不喜欢它。

任何人都知道为什么我无法宣传这个价值?

1 个答案:

答案 0 :(得分:0)

知道了,我的朋友遇到了同样的问题。

_setmode(_fileno(stdout), _O_TEXT);

cout恢复正常行为。他告诉我一些关于VC ++编译器和openGL旧版本的信息。 (如果我理解的话,初始openGl世界以某种方式搞砸stdout)