C++ 随机数字以及随机数字加字母生成的案例

我就废话不多说了,大家还是直接看代码吧~

#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个随机数是一样的。

#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个不一样的随机数

#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; }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方欢迎留言讨论,望不吝赐教。

一直有记日记的习惯,可是,旅行回来,

C++ 随机数字以及随机数字加字母生成的案例

相关文章:

你感兴趣的文章:

标签云: