最近在Python中利用random模块随机生成验证码,就想到C++中能不能也实现这个功能,都知道在C++中使用随机数其实比较麻烦,直接看代码吧
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
string code() {
srand((unsigned int)time(NULL));
string d = "";
for(int i = 1; i <= 6; i++){
AC:
int a = rand() % 123;
if(a >= 48 && a <= 57 || a >= 65 && a <= 90 || a >= 97 && a <= 122){
d += char(a);
} else goto AC;
}
return d;
}
int main(){
cout << code() << endl;
return 0;
}
运行效果如下:
此时可以利用循环来实现多次调用,但要注意,由于随机数是通过时间戳来实现的,所以短时间内多次调用无法达到随机的效果,需要借助系统休眠来实现,代码如下:
// 原有代码
#include <windows.h>
// 原有代码
int main(){
for(int i = 0; i < 10; i++){
cout << "你的验证码为:" << code() << endl;
Sleep(1000);
}
return 0;
}
效果如下: