| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1035 人关注过本帖
标题:急求前辈帮忙!!!!
只看楼主 加入收藏
ssllaayy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-11-7
收藏
 问题点数:0 回复次数:1 
急求前辈帮忙!!!!

编写一个C程序,显示通过命令行参数获得的两个文件之间的差别。对每一处差别,显示其所处的位置以及两个文件在此处的字符。还要确保用户输入的命令行参数的个数有效。最后,显示不同之处的总数。

实现方式:

A.声明变量argv和argc,用以接收命令行参数。

B.为这两个文件声明文件指针。

C.验证argc以确保输入的命令行参数的个数正确。

D.以读模式打开这两个文件。

E.用循环语句同时从这两个文件中读取一个字符,直到酱锶我庖桓鑫募?哪┪病?/P>

F.如果字符不同,则显示这些字符及其位置。增加用以标识差别的计数器。

G.如果达到其中一个文件的末尾,将另一个文件的剩余字符作为有差别的字符打印出来。

H.检查标识差别的计数器,显示相应的信息。

I.关闭这两个文件。

注意:命令行参数就是指main函数中的参数,例如代码main(int argc,char*argv[])。

argc表示参数个数,argv表示命令行参数数组。在运行该程序的时候,就可以向程序输入命名行参数,例如test.exe-help,其中-help就是命令行参数,该参数将传送给数组argv。

先在这里拜谢了!!!!!

搜索更多相关主题的帖子: 前辈 
2004-11-07 23:23
ssllaayy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-11-7
收藏
得分:0 

#include<stdio.h> #include<stdlib.h> void main() { FILE *fp1,*fp2; char ch1,ch2; char argv[2]; int argc; int n=0,differ=0; if(argc!=3) { printf("命令行参数个数错误!\n"); exit(1); } if((fp1=fopen("fp1","r"))==NULL) { printf("不能打开第一个文件!\n"); exit(1); } if((fp2=fopen("fp2","r"))==NULL) { printf("不能打开第二个文件!\n"); exit(1); } while((ch1=fgetc(fp1))!=EOF&&(ch2=fgetc(fp2))!=EOF) { n++; if(ch1!=ch2) {differ++; printf("第%d处\t位置%d\t%s:%c\t%s:%c\n",differ,n,argv[1],ch1,argv[2],ch2); } } if(ch1==EOF) { differ++; n++; printf("第%d处\t位置%d\t%s:",differ,n,argv[2]); while((ch2=fgetc(fp2))!=EOF) { putchar(ch2); } }

else { differ++; n++; printf("第%d处\t位置%d\t%s:",differ,n,argv[1]); while((ch1=fgetc(fp1))!=EOF) { putchar(ch1); } } printf("\n\n两个文件共有%d处不同\n",differ); fclose(fp1); fclose(fp2); }

2004-11-09 00:49
快速回复:急求前辈帮忙!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017466 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved