C ++ Объединить две строки для отображения BMP

В настоящее время работаю над проектом лотереи для моего класса 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

}

Какие-нибудь мысли?

0

Решение

Я думаю, что вы хотите:

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

так далее..

Код для этого будет:

Non-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());
}
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, первый пример будет более
интуиция

0

По вопросам рекламы [email protected]