所以我尝试过使用rand(),但每次都会导致相同的问题,所有创建的字符串都是重复的。我想问题可能来自数字生成器,但我不知道。
#include<iostream>
#include<unistd.h>
#include<fstream>
#include<string>
#include<cstdlib>
#include<time.h>
#include<random>
using namespace std;
int count;
char letter;
string word;
char ls[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'M', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<> dis(0, 51);
string code()
{
for (int i = dis(gen) ; count != 13; count++){
word += ls[i];
i = dis(gen);
}
return word;
}
int main()
{
srand(time(0));
while(true){
cout << code() <<"\n";
srand(time(0));
}
sleep(10);
}
for (int i = dis(gen) ; count != 13; count++){
当您的代码第一次调用这个函数时,这个
但是您会惊讶地得知,当您的代码第二次调用这个函数时,
此外,第一次调用该函数时,随机字母会累积到
所以这个函数在第二次被调用时不做任何事情,它只是返回相同的
null
null