glutStrokeCharacter似乎破坏了我的字符串?

时间:2018-01-02 15:07:48

标签: c++ opengl glut

我试图在openGL中为游戏制作得分。对于我使用的文字:

void draw_text(const char* text)
{
    size_t len = strlen(text);
    for (size_t i=0;i<len;i++)
    {
        glutStrokeCharacter(GLUT_STROKE_ROMAN, text[i]);
    }
}

如果我传入这样的文字:

const char* score_text = "Score:";

它在屏幕上正确显示,但我想要一个可变数字得分,所以我将int转换为const char *,如下所示:

// converts int to string
const char* int_to_string(int i)
{
    std::ostringstream str1;
    str1 << i;
    std::string temp = str1.str();

    return temp.c_str();
}

我尝试过to_string,而我所使用的系统有一个阻止它工作的错误(它是一个标记的部分,所以它必须在提供的系统上运行)所以我使用上面的方法。 / p>

现在如果我将数字传递给draw_text:

draw_text(int_to_string(180));

它将打印出第一个字符,但其余部分似乎已损坏,因此它们不会出现或显示为不同的字符。例如&#34; 1K&#34;或&#34; 1cp&#34;

我似乎无法从快速谷歌中找到原因,但是我发现如果我将它发送到cout后将其发送到coutkeCharacter然后将endl发送到cout然后数字将正确显示。如果我这样做但省略了endl,则仍然会发生损坏并将其打印到终端,因为它已损坏。

0 个答案:

没有答案