用C 语言编写的注册表比较程序

王朝c/c++·作者佚名  2005-05-25
窄屏简体版  字體: |||超大  

程序运行时(在DOS模式下)输入的方式如下:compare xx1.reg xxx2.reg xxx3.txt

程序代码:

# include "stdio.h" /*定义头文件或说包含文件*/

main(argc,argv) /*定义带参数的主函数*/

int argc; /*定义参数类型*/

char *argv[]; /*定义第二参数类型*/

{ FILE *fp1,*fp2,*fp3; /*定义文件指针*/

char a,b; /*定义字符变量*/

if((fp1=fopen(argv[1],"r"))==NULL)

/*打开第一的注册表备份文件,如果不存在则跳出程序并显示“The file don`t open!”*/

{ printf("The file don`t open!");

exit(0); }

if((fp2=fopen(argv[2],"r"))==NULL) /*打开第二的注册表备份文件,如果不存在则跳出程序并显示“The file don`t open!”*/

{ printf("The file don`t open!");

exit(0);}

if((fp3=fopen(argv[3],"w"))==NULL) /*建立新的文本文件,用于存放比较结果。*/

{printf("The file don`t open!");

exit(0);}

rewind(fp1); /*规定文件指针fp1指向第一个注册表文件头部*/

rewind(fp2); /*规定文件指针fp2指向第二个注册表文件头部*/

while(!feof(fp1)||!feof(fp2)) /*开始比较*/

{ a=fgetc(fp1); /*读取第一个注册表文件内容并赋予给字符变量a*/

b=fgetc(fp2); /*读取第二个注册表文件内容并赋予给字符变量b*/

if(a!=b) fputc(b,fp3);

/*字符变量a与b不相同的话,那么把不同之处写入新建的文本文件中*/

if(feof(fp1)) fputc(b,fp3);

/*如果第一个注册表文件已经读完,第二个文件还有未读取部分,那么把第二个文件的剩余部分全部写入新建文件中*/

if(feof(fp2)) fputc(a,fp3);} /*如果第二个注册表文件已经读完,第一个文件还有未读取部分,那么把第一个文件的剩余部分全部写入新建文件中*/

fclose(fp1); /*关闭第一个注册表文件*/

fclose(fp2); /*关闭第二个注册表文件*/

fclose(fp3); /*关闭新建文件*/

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航