连接char和float以在opengl / glut中打印出来

时间:2013-12-05 22:21:39

标签: c opengl glut

我正在尝试在窗口中打印我的程序的fps。

所以我想输出这样的内容:Fps: 16.72

我创建了一个处理文本显示的方法:

void displayText( float x, float y, char *string ) {
    char * ch;

    glColor3f( 0.0f, 0.0f, 0.0f );
    glRasterPos3f( x, y, 0.0 );

    for( ch = string; *ch; ch++ ) {
        glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24, (int)*ch );
    }
}

用以下方式调用:

displayText( 900, 900, str);

我正在尝试将浮点数fps转换为char以传递给此方法。 我试过的各种方法:

char * str = "Fps: "; // and the fps is a float instantiated by another method

char * newFPS = (char)fps; // I tried to cast
strcat(str,newFPS);        // and then concatenate them
snprintf(str, sizeof(str), "%f", fps); // googled example
sprintf( str, "%f", (char)fps);        // another one

我真的不了解C,它的功能足以知道我哪里出错了。

1 个答案:

答案 0 :(得分:1)

试试这个例子:

char buf[100] = {0};
snprintf(buf, 100, "FPS: %.1f", fps);
displayText( 900, 900, buf);