gpt4 book ai didi

c++ - 生成随机 QString 每次都会产生相同的结果

转载 作者:行者123 更新时间:2023-11-30 03:55:58 25 4
gpt4 key购买 nike

我正在开发一个 QT 项目,用户输入他们的全名,程序根据他们名字中的字母生成一个随机的 5 个字符的密码。不幸的是,我遇到了一个问题,但每次我重新运行该程序时,它都会产生相同的结果。所以它显然不是很随机。即使在退出 QT Creator 并再次打开它并使用相同的用户输入运行程序后,它也会产生相同的结果。

我还需要生成不带空格的密码。

这是我的代码:

while(password.length() < 5) {
int index = qrand() % fullName.length();
QChar nextChar = fullName.at(index);
if (!nextChar.isSpace()) {
password.append(nextChar);
}
}

任何解决方案将不胜感激。

最佳答案

您需要为 qrand 提供合适的种子(通常在程序启动时)。尝试:

QTime now= QTime::currentTime() ;
qsrand( now.msec() );

您不会询问这个问题,但您是否正在检查 fullName 的长度是否不为零(因为程序会尝试除以零)?或者它不仅仅由空白组成(因为它会永远循环)?一个简单的解决方案是修剪 fullName 并检查其长度是否严格大于零。

关于c++ - 生成随机 QString 每次都会产生相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28775861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com