下面是我寫的壹個用來隨機產生7-9位QQ郵箱的源代碼,原理是先用隨機函數產生壹個<10的整數(這個數是所生成QQ號碼的位數),然後判斷這個數是否在7~9之間,如果滿足要求,下面將壹位壹位地產生每壹位數字,最後與"@qq.com"連接,生成壹個QQ郵箱,並寫入文件.
VC++6.0下編譯通過
函數produceQQMail()用來產生隨機數的代碼:
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX_ADDRESS 1000
char directory[20];
DWORD writeFile(const char*filename,char*str)
{
FILE *fp;
fp=fopen(filename,"a+");
if(fp==NULL)
{
puts("Cannot open this file!");
return -1;
}
fprintf(fp,"%s\n",str);
fflush(fp);
//fputs(str,fp);
return 1;
}
DWORD produceQQMail() //→→→→→產生QQ郵箱函數
{
unsigned int i,count;
char zj[20];
char compare[20];
unsigned long relative;
for(count=1;count<=MAX_ADDRESS;count++)
{
Sleep(600);
srand((unsigned)time(0));
while(1)
{
relative=1+(int)(10.0*rand()/(RAND_MAX+1.0));//產生QQ號碼的位數
if(relative<7||relative>9)
continue;//判斷是否滿足所需要的位數
Sleep(100);
for(i=0;i<relative;i++)
{
itoa(1+(int)(10.0*rand()/(RAND_MAX+1.0)),&zj[i],10);//生成每壹位數字,將其轉換為字符型,並保存在數組中
}
zj[i]='\0';
strcat(zj,"@qq.com");//連接生成郵箱
if(count>1&&strcmp(compare,zj)==0) //比較前後兩者以防出現相同的郵箱
continue;
strcpy(compare,zj);
if(writeFile(directory,zj)==1)
{
printf("===>生成第%d個QQ郵箱\n",count);
//system("cls");
break;
}
}
}
return 1;
}
void main()
{
puts("=>請輸入您要保存到的文件名及其目錄");
scanf("%s",directory);
puts("=>Now producing QQ mail addresses……");
produceQQMail();
}