我正在尝试在窗口中打印我的程序的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,它的功能足以知道我哪里出错了。
答案 0 :(得分:1)
试试这个例子:
char buf[100] = {0};
snprintf(buf, 100, "FPS: %.1f", fps);
displayText( 900, 900, buf);