显示文本到windowsc++
Displaying Text to Window C++
我试图在屏幕上显示一个小而非常基本的游戏得分。
我使用这个函数来显示单词Score:
:
void drawBitmapText(char *string, int score, float r, float g, float b, float x,float y,float z) {
char *c;
glColor3f(r,g,b);
glRasterPos3f(x,y,z);
for (c=string; *c != ' '; c++) {
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, *c); }
}
我将上面的function()
调用为:drawBitmapText("score: ",score,0,1,0,10,220,0);
它成功地显示了Score:
这个词,并在正确的地方,但我遇到的问题是包括实际的int
,代表它旁边的分数。
我如何纳入int
显示太?我顺利通过了考试。
我试过将其转换为string/char
并添加/连接它,但它只是显示随机字母…谢谢。
因为你正在使用c++,所以开始使用c++库来处理字符串会容易得多。您可以使用std::stringstream
将标题和分数连接起来。
using namespace std;
void drawBitmapText(string caption, int score, float r, float g, float b,
float x,float y,float z) {
glColor3f(r,g,b);
glRasterPos3f(x,y,z);
stringstream strm;
strm << caption << score;
string text = strm.str();
for(string::iterator it = text.begin(); it != text.end(); ++it) {
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, *it);
}
}
您可以使用snprintf
创建一个格式化字符串,与使用printf将格式化字符串打印到控制台的方式相同。这里有一种重写方法:
void drawBitmapText(char *string, int score, float r, float g, float b, float x,float y,float z) {
char buffer[64]; // Arbitrary limit of 63 characters
snprintf(buffer, 64, "%s %d", string, score);
glColor3f(r,g,b);
glRasterPos3f(x,y,z);
for (char* c = buffer; *c != ' '; c++)
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_10, *c);
}
使用std::stringstream
std::stringstream ss;
ss << "score: " << score;
then call
ss.str().c_str();
输出c字符串
相关文章:
- 文本文件中的单词链表
- 从命令行c++发送文本文件名
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何在c++中从文本文件中逐行读取整数
- 如何创建一个QTableWidgetItem,用长文本右对齐,左边有省略号
- 从文本文件中读取时钟时间和事件时间并进行处理
- 如何从文本文件中读取值和数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何根据单词在文本中出现的概率输出单词
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- C++试图读取一个文件并输出到另一个文本文件
- 显示文本到windowsc++