Problem z generatorem hasla c++ , dlugosc hasla

Odpowiedz Nowy wątek
2020-03-25 20:20

Rejestracja: 1 tydzień temu

Ostatnio: 1 tydzień temu

0

Witam.
Mam problem zwiazany z generatorem hasla w jezyku c++. Nie potrafie zrobic zeby uzytkownik wpisywal jaka zyczy sobie dlugosc hasla.

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string>

using namespace std;

string spolgloska = "bcdfghjklmnpqrstvwxyz" , samogloska = "aeiouy";

int los(int A , int B){
    return rand()%(B - A + 1) + A; 
}

char losc(string s){
    return s[los(0 , s.length() - 1)];
}

bool ins(char c , string s){
    return s.find(c , 0) !=- 1;
}

int main() {

    srand(time(NULL));

    string haslo;
    haslo = losc(samogloska + spolgloska);

     cout<<"Dlugosc hasla?\t"<<endl;
    float n;
    cout<<"n=";
     cin>>n;
     cout<<endl;

       for(int i = 0; i < n; i++){
        if(ins(haslo[haslo.length() - 1] , samogloska)){
            haslo += losc(spolgloska);
        } else haslo += losc(samogloska);
        haslo += los(33 , 47);
        haslo += los(48 , 57);
    }

    cout << haslo<<endl;
    return 0;
}
edytowany 1x, ostatnio: kq, 2020-03-25 20:26
Hej! Twój post prawdopodobnie zawiera niesformatowany kod. Użyj znaczników ``` aby oznaczyć, co jest kodem, będzie łatwiej czytać. (jestem botem, ta akcja została wykonana automatycznie, prawdopodobieństwo 0.9924603) - Tasmanian Devil 2020-03-25 20:24

Pozostało 580 znaków

2020-03-25 20:32

Rejestracja: 1 rok temu

Ostatnio: 4 minuty temu

5
Daniel R napisał(a):

Nie potrafie zrobic zeby uzytkownik wpisywal jaka zyczy sobie dlugosc hasla.

Nieprawda. Ładnie pyta i przyjmuje wpisane n. Skąd taki wniosek? Masz jakiś inny bład.

BTW ilosc liter jako float to bardzo dziwna decyzja. Dlaczego nie int?

Pozostało 580 znaków

kq
2020-03-25 20:32
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 2 minuty temu

Lokalizacja: Szczecin

5

Przecież pytasz i użytkownik wpisuje. Co prawda ten kod ma inne problemy, ale długość hasła zależy od wpisanej wartości.

Problemy:

Ale tak btw: jeśli jesteś początkującym, to i tak dobrze. Kod jest w miarę ustrukturyzowany, a pytanie zadanie sensownie.


edytowany 1x, ostatnio: kq, 2020-03-25 20:34

Pozostało 580 znaków

2020-03-25 23:36

Rejestracja: 8 lat temu

Ostatnio: 1 minuta temu

1

To może byc krotsze, np:

#include <iostream>
#include <algorithm>
using namespace std;

char randChar() {
    return 'a' + rand() % ('z' - 'a' + 1);
}

int main() {
    int len;
    cout << "Len: ";
    if (!(cin >> len)) return 0;
    string pwd(len, ' ');
    std::generate (pwd.begin(), pwd.end(), randChar);
    cout << "Pwd: " << pwd << endl;
    return 0;
}

https://ideone.com/gOdGz5

Funkcję randChar można napisać lepiej, tutaj tylko najprostsza wersja.


Szacuje się, że w Polsce brakuje 50 tys. programistów

Pozostało 580 znaków

Odpowiedz

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