Jak programowo generować napisy zawierające liczby // img/tab[1].bmp // ?

0

Witam!
Chciałbym się dowiedzieć czy można i jak zastosować zmienną z tablicy int, do ścieżki pliku... Mam taki kod i chciałbym go wcisnąć w pętle i użyć zmiennej w ścieżce.

//----------------------------------//
//losowanie bez powtorzen//

srand(time(NULL));
       int karta[10];
       karta[0]=rand()%9+2;
       for(int i=1; i<10;)
       {
           int los=rand()%9+2;
           for(int j=0; j<i; j++)
           {
                if(los==karta[j])
                {
                    break;
                }
                else if(j==i-1)
                {
                    karta[i]=los;
                    i++;
                }
           }
       }
//----------------------------------//


       if(karta[0]==2)
       {
           kg1->Picture->LoadFromFile("img/2s.bmp");
       }
       else if(karta[0]==3)
       {
           kg1->Picture->LoadFromFile("img/3s.bmp");
       }
       else if(karta[0]==4)
       {
           kg1->Picture->LoadFromFile("img/4s.bmp");
       }
       else if(karta[0]==5)
       {
           kg1->Picture->LoadFromFile("img/5s.bmp");
       }
       else if(karta[0]==6)
       {
           kg1->Picture->LoadFromFile("img/6s.bmp");
       }
       else if(karta[0]==7)
       {
           kg1->Picture->LoadFromFile("img/7s.bmp");
       }
       else if(karta[0]==8)
       {
           kg1->Picture->LoadFromFile("img/8s.bmp");
       }
       else if(karta[0]==9)
       {
           kg1->Picture->LoadFromFile("img/9s.bmp");
       }
       else if(karta[0]==10)
       {
           kg1->Picture->LoadFromFile("img/10s.bmp");
       }

zamiast tych wszystkich if'ów bym chciał dać ...

   for(int i=0; i<15;i++)
   {
          if(karta[0]==i)
          {
               kg1->Picture->LoadFromFile("img/  (  zmienna (i)  )  .bmp");  
          }
   }
0

Użyj std::stringstream albo sprintf. Od biedy w tym przypadku zadziała std::to_string

Co do losowania bez powtórzeń: https://dsp.krzaq.cc/post/1304/zwi-4-jak-wylosowac-elementy-bez-powtorzen/

https://en.cppreference.com/w/cpp/io/c/fprintf
https://en.cppreference.com/w/cpp/io/basic_stringstream

0

DZIAŁA tak jak chciałem:

srand(time(NULL));
       karta[0]=rand()%51+1;
       for(int i=1; i<10;)
       {
           int los=rand()%51+1;
           for(int j=0; j<i; j++)
           {
                if(los==karta[j])
                {
                    break;
                }
                else if(j==i-1)
                {
                    karta[i]=los;
                    i++;
                }
           }
       }
         std::ostringstream fileNameStream0(karta[0]);
         fileNameStream0 << "img/"<< karta[0] <<".bmp";
         std::string fileName0 = fileNameStream0.str();
       kg1->Picture->LoadFromFile(fileName0.c_str());

1 użytkowników online, w tym zalogowanych: 0, gości: 1