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

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

}

Есть предположения?

  • 0
    Поскольку ваш код не работает, вы спрашиваете, как это сделать вообще?
  • 0
    да, это правильно, сэр.
Показать ещё 1 комментарий
Теги:
string

2 ответа

0

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

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

и т.д..

Код для этого:

Non-С++ 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());
}

Использование С++ 11:

std::string type = ".BMP";
for(int i = 0; i < 40; i++)
{
    displayBMP(std::to_string(i) + type, randomX(), randomY());
}
  • 0
    Первые 2 параметра выглядят хорошо, но я получаю следующую ошибку ['displayBMP': не могу преобразовать параметр 1 из 'std :: string' в 'char *']
  • 0
    Чтобы преобразовать name в const char* , вам нужно сделать .c_str() . Я не знаю определения вашей функции displayBMP. Если displayBMP НЕ нужно изменять параметр name, это можно сделать безопасно: displayBMP(const_cast<char*>(name.c_str()), .....);
Показать ещё 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, первый пример будет более интуитивным

  • 0
    Получение ошибки [невозможно преобразовать параметр 1 из 'const char *' в 'char *']
  • 0
    У меня есть обновление и надеюсь, что может помочь вам ^^
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню