【发布时间】:2020-11-14 07:09:14
【问题描述】:
我已经做了一个随机密码生成器。在函数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!@#$%^&*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;
}
谢谢
【问题讨论】:
-
您似乎想要保存一系列字符而不是单个字符。尝试使用
std::string和+=来添加每个字符。 -
@RetiredNinja 是的,我正在尝试获取数组序列
-
sum是单个字符,改成std::string,如果你想要一个数组,你可以在构建完字符串后使用sum.data() -
@AlanBirtles
std::string sum = sum + allChars[rand()%sizeOfPassword];喜欢这样吗? -
@AndrewTruckle 我一定会调查的,但这与知识差距无关,而是与实践和经验有关。