0

目前正在为我的 CompSci 课程做一个彩票项目。

我有 40 个彩票球图像(1.BMP 到 40.BMP),我想使用 for 循环来显示每个球。

如果我调用 displayBMP 40 次,我可以很好地显示它们,但必须有一种更漂亮的方法来做到这一点。

string type = ".BMP";
for(int i = 0; i < 40; i++)
{
    char alphanum = i;
    //char* name = combine alphanum and type
    displayBMP(name, randomX(), randomY());
}

编辑

试图把这个垃圾放在 .cpp 文件中作为我的标题。

#include "Lottery.h"
void Lottery::initDisplay()
{

    //Draw Some Lines

    //Display Lottery balls 1-40

}

有什么想法吗?

4

2 回答 2

0

您可以在字符串类中使用函数c_str()来返回 const char*

所以如果第一种 displayBMP 是 const char*

例如

std::string type = ".BMP";
for(int i = 0; i < 40; i++)
{
    char alphanum = i;

    std::string name = "" + alphanum + type;
    displayBMP(name.c_str(), randomX(), randomY());
}

但是,类型是 char*

例如

std::string type = ".BMP";
for(int i = 0; i < 40; i++)
{
  char alphanum = i;

  std::string name = "" + alphanum + type;
  displayBMP(&name[0], randomX(), randomY());
}

在这里,我建议将名字的类型转换成字符串会更方便,如果不想在displayBMP中改变名字,第一个例子会更直观

于 2013-10-27T05:58:04.347 回答
0

我想你想要:

1.BMP
2.BMP
3.BMP
4.BMP

ETC..

代码是:

非 C++11:

#include <sstream>

template <typename T>
std::string ToString(T Number)
{
    std::stringstream ss;
    ss << Number;
    return ss.str();
}

std::string type = ".BMP";
for(int i = 0; i < 40; i++)
{
    displayBMP(ToString(i) + type, randomX(), randomY());
}

使用 C++11:

std::string type = ".BMP";
for(int i = 0; i < 40; i++)
{
    displayBMP(std::to_string(i) + type, randomX(), randomY());
}
于 2013-10-27T05:32:33.207 回答