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, botów: 0