#c #for-loop #random #var
#c #for-цикл #Случайный #var
Вопрос:
Я создал генератор случайных паролей.В функции void passwordGenerator(int sizeOfPassword)
проблема заключается в следующем: я пытаюсь сохранить пароль, сгенерированный программой, sum
но я не знаю, как это сделать правильно.
Как мне сохранить пароль из случайных цифр sum
.
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
void passwordGenerator(int sizeOfPassword)
{
srand(time(NULL));
char allChars[] = {"0123456789!@#$%^amp;*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
char sum;
for(int i = 0; i < sizeOfPassword; i ){
sum = sum allChars[rand()%sizeOfPassword];
}
std::cout<<sum<<std::endl;
}
int main()
{
int sizeOutput;
char wannaPlay = 'y';
while(wannaPlay == 'y'){
std::cout<<"Enter the size of password: ";
std::cin>>sizeOutput;
passwordGenerator(sizeOutput);
std::cout<<"nRun Again[y/n]? : ";
std::cin>>wannaPlay;
}
return 0;
}
Спасибо
Комментарии:
1. Похоже, вы хотите сохранить последовательность символов вместо одного. Попробуйте использовать
std::string
with=
для добавления каждого символа.2. @RetiredNinja да, я пытаюсь получить последовательность массива
3.
sum
это один символ, измените его наstd::string
, если вам нужен массив, который вы можете использоватьsum.data()
после завершения построения строки4. @AlanBirtles
std::string sum = sum allChars[rand()%sizeOfPassword];
нравится это?5. @AndrewTruckle Я обязательно изучу это, но дело не в пробелах в знаниях, а в практике и опыте.
Ответ №1:
Вы можете отображать букву за буквой:
void passwordGenerator(int sizeOfPassword)
{
const char allChars[] = {"0123456789!@#$%^amp;*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
for (int i = 0; i < sizeOfPassword; i ){
std::cout << allChars[rand() % sizeof (allChars)];
}
}
или построение строки:
std::string passwordGenerator(int sizeOfPassword)
{
const char allChars[] = {"0123456789!@#$%^amp;*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
std::string password;
for (int i = 0; i < sizeOfPassword; i ){
password = allChars[rand() % sizeof (allChars)];
}
return password;
}
Комментарии:
1. Спасибо, приятель, ранее я использовал первый код, который вы упомянули, но мне нужно было сохранить выходные данные в переменной, так что еще раз спасибо