繁体   English   中英

比较两个文件的C代码

compare two files c code

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我需要逐行比较两个文件。 其中一个文件在行尾具有类似^ M的字符。 在比较时,我想排除这一点。 我还需要找到匹配的行数。 这是我的代码。 如何添加^ M以及在哪里增加线失真?

int compareFile(FILE* file_compared, FILE* file_checked)
{
    bool diff = 0;
    int N = 65536;
    char* b1 = (char*) calloc (1, N+1);
    char* b2 = (char*) calloc (1, N+1);
    size_t s1, s2;

    do {
        s1 = fread(b1, 1, N, file_compared);
        s2 = fread(b2, 1, N, file_checked);

        if (s1 != s2 || memcmp(b1, b2, s1)) {
            diff = 1;
            break;
        }
      } while (!feof(file_compared) || !feof(file_checked));

    free(b1);
    free(b2);

    if (diff) return 0;
    else return 1;
}

void main(int argc, char *argv[] )
{
FILE *fpread, *fpread2;
  char filebuff[MAXLINE];
  char filebuff2[MAXLINE];
  int var = 0;
  int linecount = 0;
printf ("COMPARE RESULT %d \n",compareFile("file1","file2"));
2 个回复

实际上,您所看到的^M是回车符(ASCII 13,C语法\\r )。 比较文本文件时,最好不要在意所使用的行终止模式,因为有多种模式(Unix,Windows和Mac都有自己的)。

您可能应该将输入分成几行,而忽略使用的确切行终止符,然后比较这些

UPDATE编写一个函数,该函数一次读取一个字符,当它到达任何有效的行终止序列时停止,并确保随着行的增长动态分配内存。

一开始:

int diff = 0;

增加计数器:

if (s1 != s2 || memcmp(b1, b2, s1)) {
    ++diff;
}

最后就是这样:

return diff;

另外,您的功能应该是:

int compareFile(char* fc_name,char* fk_name){
    /* Variable Declarations */
    FILE *file_compared = fopen(fc_name,"r");
    FILE *file_checked = fopen(fk_name,"r");
    if(file_compared == NULL || file_checked == NULL)
          return -1;
    /* .... */
}
1 比较 C 中的两个二进制文件

我正在编写一个程序来比较两个二进制文件并绘制第一个差异。 我想从每个文件中连续读取 16 个字节的数据并进行比较。 为此,我将两个文件中的 16 个字节存储到char *buffer1, buffer2 。 当我打印输出时,我得到buffer1有file1和file2的数据。 代码如下: 我试 ...

2020-03-06 19:56:20 3 1577   c
2 您如何基于代码结构比较两个包含C代码的文件,而不仅仅是文本差异?

我有两个要比较的包含C代码的文件。 我正在寻找一个实用程序,该实用程序将为每个文件构造一个语法树,并比较语法树,而不是仅比较文件的文本。 这样,格式和样式上的细微差异将被忽略。 甚至能够告诉比较工具忽略变量名之类的差异也将是很好的。 如果我错了,请纠正我,但diff不具备此功能。 ...

3 比较两个apk文件以识别重新包装的代码

我想比较两个apk文件,特别是重新打包的应用程序与原始文件,并找到源代码中的差异来识别更改。 目前,我们必须手动解压缩和比较单个文件以找到代码差异。 是否有工具或库快速完成此操作? 有找到相似性的解决方案,但我想找到修改代码的单个类文件。 如果您知道任何解决方案,请提供建议。 我不 ...

4 比较两个导演的文件中的代码

我在domain.com中有几个文件和文件夹,在以下位置有一个工作副本:domain.com/beta 我想将beta文件夹中的所有文件(php文件)的代码与主文件夹中的代码进行比较,然后仅查看代码不匹配的文件。 我已经用谷歌搜索了这个话题,但是只能找到一次比较单个文件的解决方案。 ...

5 C# - 比较两个文本文件

背景 我正在开发一个简单的Windows服务,它监视某些目录的文件创建事件并记录这些 - 长话短说,以确定文件是否从目录A 复制到目录B.如果文件在X时间后不在目录B中,将提出警报。 这个问题是我只有文件在工作时才能获取信息,如果它已经进入目录B - 我假设有两个同名的文件是相同的, ...

7 C funktion 需要比较两个 CSV - 文件

我的 C 函数有问题,希望你能帮助我。 我想比较两个 CSV 文件,其中该函数将打开这两个文件并将它们与“比较”函数进行比较。 然后给出一个输出,它们要么是相等的,要么是不相等的,然后输出差异所在。 希望你能帮我 :) 我尝试了很多不同的事情,包括更改我的路径或更改两个文件的位置,因为我知道这些 ...

2021-11-25 12:32:34 0 26   c/ csv
8 比较两个文本文件-C语言中的拼写检查程序

我正在编写一个拼写检查程序,该程序会将用户的文本文件与字典进行比较,以查看他们输入的单词是否在字典中。 如果不是,则会显示一条错误消息,告诉用户该特定单词是错误的。 我尝试了以下代码的多种变体,但未获得预期的结果。 它是嵌套的while循环中将其丢弃的东西。 这段代码处于起草阶段,我必须 ...

10 比较C#中的两个csv文件

我想比较两个csv文件并在文件中打印差异。 我目前使用下面的代码删除一行。 我可以更改此代码,以便比较两个csv文件吗?还是在c#中有更好的方法比较csv文件? ...

2017-10-11 12:46:37 2 664   c#/ csv
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM