| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1018 人关注过本帖
标题:C语言比较两文件异同(txt)
只看楼主 加入收藏
kekin
Rank: 2
等 级:论坛游民
帖 子:59
专家分:85
注 册:2010-3-26
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:10 
C语言比较两文件异同(txt)
用C语言比较两txt文件的同一行是否相同。
例如:文件2的第一行和文件1的第一行不同,那么用文件1的第一行替代文件2的第一行。
各位懂得文件操作的发表下你们的高见吧!
求教了~~~
搜索更多相关主题的帖子: C语言 
2012-09-25 17:47
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:2 
Diff and Merge
2012-09-25 18:11
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:2 
作业么 如果不是作业有很多现成工具能做这个 而且功能很强大
2012-09-25 18:28
kekin
Rank: 2
等 级:论坛游民
帖 子:59
专家分:85
注 册:2010-3-26
收藏
得分:0 
以下是引用Devil_W在2012-9-25 18:11:21的发言:

Diff and Merge
工具当然好,只是想自己用写代码比对下
顺便加深下对文件操作
2012-09-25 20:54
kekin
Rank: 2
等 级:论坛游民
帖 子:59
专家分:85
注 册:2010-3-26
收藏
得分:0 
以下是引用zklhp在2012-9-25 18:28:18的发言:

作业么 如果不是作业有很多现成工具能做这个 而且功能很强大
不是的   只是自己测试下   这只是一部分   有些功能自己想加就加
2012-09-25 20:55
kekin
Rank: 2
等 级:论坛游民
帖 子:59
专家分:85
注 册:2010-3-26
收藏
得分:0 
只是比较是没有问题的但是替换感觉就不那么简单。比对的不仅是字面上的字符,还有些控制字符。有些你看上去全部一样,但是里面就是有不同
2012-09-25 20:58
kekin
Rank: 2
等 级:论坛游民
帖 子:59
专家分:85
注 册:2010-3-26
收藏
得分:0 
程序代码:
#include<stdio.h>

#define Max 10000  //定义最大行数

#include<iostream>

#include<stdlib.h>

using namespace std;

int fseek(FILE *fp,long offset,int origin);

void main()
{
  FILE *fpa ,* fpb ,* fpc;


  fpa=fopen("aa.txt","r+") ;
  fpb=fopen("bb.txt","r+") ;

 
  fpc=fopen("cc.txt","w") ; 

  if( fpa==NULL )
    {
        printf("Can`t open A file\n");
        exit(0);
    }
  if(fpb==NULL)
    {
        printf("Can`t open B file\n");
        exit(0);
    }
  if( fpc==NULL )
    {
        printf("Can`t open C file\n");
        exit(0);
    }
  char ch1[Max] ;
  char ch2[Max] ;


  int i(0);

  int j(0);
  while( !feof(fpa)){

   
      fgets( ch1 ,Max ,fpa);
     
      fgets( ch2 ,Max ,fpb);
    
      if( strcmp(ch1,ch2)!=0 ){
          fprintf( fpc,"%d\n",i);
          fprintf( fpc,"%s\t%s\n",ch1,ch2);
          j=fseek(fpb,0,0);
          if(j>=0)
              fputs(ch1,fpb);
        else
            return -1;
       
      }


      i++;
  }
  cout<<"总共比对"<<i<<""<<endl;

  fclose(fpa);
  fclose(fpb);

}
上面的自己写的代码  文件超过2行就出问题   
2行的话可以替换,但就想strcopy那样,当2个字符串长度不同时候  只能替换前面的
2012-09-25 21:10
暖通小宝
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2012-9-25
收藏
得分:2 
额,好不容易注册了个号
2012-09-25 21:16
kekin
Rank: 2
等 级:论坛游民
帖 子:59
专家分:85
注 册:2010-3-26
收藏
得分:0 
以下是引用暖通小宝在2012-9-25 21:16:10的发言:

额,好不容易注册了个号
欢迎,注册后然后呢
2012-09-25 22:15
Demoon
Rank: 2
等 级:论坛游民
帖 子:16
专家分:34
注 册:2012-9-12
收藏
得分:2 
7楼的比我的好,我就不晒了,但是还是有问题,坐等大神回答
2012-09-26 15:59
快速回复:C语言比较两文件异同(txt)
数据加载中...
 
   



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

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