我就废话不多说了,大家还是直接看代码吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <time.h> #include <sys/timeb.h> void MainWindow::slot_clicked() { QString strRand; int length = 32; QString strTmp = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM" ; struct timeb timer; ftime(&timer); srand (timer. time * 1000 + timer.millitm); //毫秒种子 for ( int i = 0; i < length; i++ ) { int j = rand ()%35; strRand += strTmp.at(j); } qDebug() << strRand; |
补充知识:C/C++生成随机数字符串(错误方法和正确方法)
先说错误的方法。生成的10个随机数是一样的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <string.h> void make_rand_str( char *pchStr, int iLen) { time_t tCurTime = 0; int iRandValue = 0; int i = 0; unsigned int state = 0; if (NULL == pchStr || iLen <= 0) { return ; } tCurTime = time (NULL); printf ( "\n***%ld***%u**\n" ,tCurTime ,(unsigned int )tCurTime); srand ((unsigned int )tCurTime); iRandValue = rand (); snprintf(pchStr,iLen, "%d" ,iRandValue); printf ( "\n====%s====\n" ,pchStr); return ; } int main() { char str[20]; int i = 0; for (i = 0; i < 10; i++) { memset (str,0, sizeof (str)); make_rand_str(str, sizeof (str)); // printf("\n====%s====\n",str); } return 0; } |
正确的方法,生成了10个不一样的随机数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <string.h> void make_rand_str( char *pchStr, int iLen, int num) { time_t tCurTime = 0; int iRandValue = 0; int i = 0; unsigned int state = 0; if (NULL == pchStr || iLen <= 0) { return ; } tCurTime = time (NULL); printf ( "\n***%ld***%u**\n" ,tCurTime ,(unsigned int )tCurTime); srand ((unsigned int )tCurTime); for (i = 0;i < num; i++) { iRandValue = rand (); snprintf(pchStr,iLen, "%d" ,iRandValue); printf ( "\n====%s====\n" ,pchStr); } return ; } int main() { char str[20]; memset (str,0, sizeof (str)); make_rand_str(str, sizeof (str),10); // 10个随机数 // printf("\n====%s====\n",str); return 0; } |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方欢迎留言讨论,望不吝赐教。
原文链接:https://www.cnblogs.com/whwywzhj/p/10578307.html