В настоящее время работаю над проектом лотереи для моего класса 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
}
Какие-нибудь мысли?
Я думаю, что вы хотите:
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());
}
Вы можете использовать функцию 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, первый пример будет более
интуиция