Jak ustawić limit generowanych znaków?

0

Witam!
Znalazłem ostatnio taki kod i chciałbym się dowiedzieć jak, bądź gdzie, ustawić limit generowanych znaków.

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;

const char * genText(int max, bool potasuj = true) {
   /*
    *  Funkcja generuje losowy ciąg. 
    *   -argument max to długość wygenerowanego ciągu
    *   -argument potasuj aktywuje dodatkowe przemieszanie ciagu (domyslny argument)
   */

   //Cztery tablice z roznymi typami znakow. Mozna modyfikowac!

   char tab0[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   char tab1[] = "0123456789";

   //Tablica flag z uzytymi juz tablicami. Zapewnia rownomierny rozklad uzycia wszystkich tablic z znakami podobna ilosc razy)
   bool vistTab[] = {0, 0, 0, 0};
   //Zwracany ciag
   string buffor;

   srand(time(NULL));

   //Petla generowania znak po znaku
   for (int i = 0; i < max; i++) {
       //Sprawdz czy wszystkie 4 tablice juz uzyte byly, jesli tak to zezwol ponownie na wylosowanie wszystkich tablic
       if (vistTab[0] == true && vistTab[1] == true)
           vistTab[0] = vistTab[1] = false;


       //Sprawdz czy wylosowany typ tablicy nie byl juz wykorzystywany, jak byl to losuj inna
       int randTab;
       do {
           randTab = rand() % 4;
       } while (vistTab[randTab] == true);
       vistTab[randTab] = 1;

       int sizeTab = 0;
       int nr;

       //Zaleznie od wylosowanej powyzej tablicy ze znakami, losuje z niej znak i dopisuje go do buffora
       switch (randTab) {
           case 0:
               sizeTab = sizeof (tab0) / sizeof (tab1[0]) - 1;
               nr = rand() % sizeTab;
               buffor += tab0[nr];
               break;

           case 1:
               sizeTab = sizeof (tab1) / sizeof (tab1[0]) - 1;
               nr = rand() % sizeTab;
               buffor += tab1[nr];
               break;

           
       }
   }

   //------------------------------------------------

   return buffor.c_str();
}

int main() {
   cout << genText(64, true);
   return 0;
}
0

Masz na myśli pierwszy parametr? Przecież to nawet jest opisane w komentarzach...

0

w której linice?

0
     *   -argument max to długość wygenerowanego ciągu
0

I co mam z tym zrobić? dopisac: < 11?

0

Nie, zmienić pierwszy argument funkcji w jej wywołaniu :​|

cout << genText(64, true);
0

A jak to by wyglądało? :)

0

w cout<< genText(64, true);
mam coś dopisać?

0

Masz gotowy udokumentowany kod. Wywołanie funkcji to chyba pierwsza rzecz w dowolnym kursie programowania, wtf...

Zmień pierwszy argument:
cout << genText(TU_WSTAW_POŻĄDANĄ_LICZBĘ, true)

Swoją drogą, słaby ten kod, ma UB, i jest mało czytelny.

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