当前位置: 代码迷 >> C语言 >> [原创]一个密码文件合并程序
  详细解决方案

[原创]一个密码文件合并程序

热度:194   发布时间:2006-04-29 16:03:00.0
[原创]一个密码文件合并程序

/*******************************************************************************/
/* 密码文件合并程序 */
/* 主函数第一个参数为密码文件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编辑过]

搜索更多相关的解决方案: 密码文件  参数  函数  

----------------解决方案--------------------------------------------------------
改进的地方还很多,结构有些混乱
----------------解决方案--------------------------------------------------------
不需要在命令行输入,还是在运行程序是用提示的方式输入比较好,你自己知道在命令行怎么输入,别人用你的程序就不知道了
----------------解决方案--------------------------------------------------------
fprintf(f3,"%s%s%c",str,str1,'\n');


fprintf(f3,"%s%s%c\n",str,str1,);
----------------解决方案--------------------------------------------------------
if((f1=fopen(argv[1],"r"))==NULL)
{
printf("file1 can't open!");
return 0;
}


用exit(1);
----------------解决方案--------------------------------------------------------
[IMG]http://www.bc-cn.net/bbs/UploadFace/55019.gif[/IMG]

一气说完呀
----------------解决方案--------------------------------------------------------
return 1;


用 0
----------------解决方案--------------------------------------------------------
太感谢了
----------------解决方案--------------------------------------------------------

exit(1)和exit(0)
return 0和return 1
有什么区别?请高手赐教,我有点糊涂!


----------------解决方案--------------------------------------------------------
以下是引用thao888在2006-4-29 16:42:00的发言:

exit(1)和exit(0)
return 0和return 1
有什么区别?请高手赐教,我有点糊涂!

1用代表成功退出,0代表失败退出(exit时候)
1代表个操作系统返回失败值,0 success

也都能用,反正你看不到问题,系统能看到


----------------解决方案--------------------------------------------------------
  相关解决方案