/*******************************************************************************/
/* 密码文件合并程序 */
/* 主函数第一个参数为密码文件1,第二个参数为密码文件2,第三个参数为合并生成的*/
/*新密码文件,第四个参数为合并方式:-c表示把两个文件进行连接,-u表示把两个文件 */
/*进行合并(即:把第一个文件中的密码和第二个文件中的密码进行组合,生成新的密码)。*/
/*密码文件中每个密码占一行,并以回车换行。 */
/*******************************************************************************/
#include <stdio.h>
#include <string.h>
int main(int argc,char *argv[])
{
char str[50],str1[50];
FILE *f1,*f2,*f3;
int count=0;
/*参数判断*/
if(argc!=5||(strcmp(argv[4],"-c")&&strcmp(argv[4],"-u")))
{
printf("paramiter error!");
exit(1);
}
/*判断文件打开是否出错*/
if((f1=fopen(argv[1],"r"))==NULL)
{
printf("file1 can't open!");
exit(1);
}
if((f2=fopen(argv[2],"r"))==NULL)
{
printf("file2 can't open!");
exit(1);
}
if((f3=fopen(argv[3],"w"))==NULL)
{
printf("file3 can't open!");
exit(1);
}
/*文件连接*/
if(!strcmp(argv[4],"-c"))
{
while(!feof(f1))
{
strcpy(str,"");
fscanf(f1,"%s",str);
if(strlen(str))
{
fprintf(f3,"%s%c",str,'\n');
count++;
}
}
while(!feof(f2))
{
strcpy(str,"");
fscanf(f2,"%s",str);
if(strlen(str))
{
fprintf(f3,"%s%c",str,'\n');
count++;
}
}
}
/*密码组合*/
else
{
while(!feof(f1))
{
strcpy(str,"");
fscanf(f1,"%s",str);
if(strlen(str))
{
rewind(f2);
while(!feof(f2))
{
strcpy(str1,"");
fscanf(f2,"%s",str1);
if(strlen(str1))
{
fprintf(f3,"%s%s%c",str,str1,'\n');
count++;
}
}
}
}
}
printf("一共生成%d个密码!\n",count);
printf("作者:飞扬");
fclose(f1);
fclose(f2);
fclose(f3);
return 0;
}
[此贴子已经被作者于2006-4-29 16:39:54编辑过]