卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章20482本站已运行348

C程序比较两个文件并报告不匹配

C程序比较两个文件并报告不匹配

在C编程语言中,程序员可以访问文件并读写其中的内容。

文件是一个简单的内存块,可以存储信息,我们只关心文本。

在这个程序中,我们将比较两个文件并报告发生的不匹配。这些文件几乎相同,但可能有一些字符不同。此外,程序将返回第一个不匹配发生的文件的行和位置。

算法

Step 1: Open both the file with pointer at the starting.
Step 2: Fetch data from file as characters one by one.
Step 3: Compare the characters. If the characters are different then return the line and position of the error character.

Example

的中文翻译为:

示例

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void compareFiles(FILE *file1, FILE *file2){
   char ch1 = getc(file1);
   char ch2 = getc(file2);
   int error = 0, pos = 0, line = 1;
   while (ch1 != EOF && ch2 != EOF){
      pos++;
      if (ch1 == '<p>' && ch2 == '</p><p>'){
         line++;
         pos = 0;
      }
      if (ch1 != ch2){
         error++;
         printf("Line Number : %d tError"
         " Position : %d </p><p>", line, pos);
      }
      ch1 = getc(fp1);
      ch2 = getc(fp2);
   }
   printf("Total Errors : %dt", error);
}
int main(){
   FILE *file1 = fopen("file1.txt", "r");
   FILE *file2 = fopen("file2.txt", "r");
   if (file1 == NULL || file2 == NULL){
      printf("Error : Files not open");
      exit(0);
   }
   compareFiles(file1, file2);
   fclose(file1);
   fclose(file2);
   return 0;
}</p>

输出

// content of the files
File1 : Hello!
Welcome to tutorials Point
File2: Hello!
Welcome to turoials point
Line number: 2 Error position: 15
Total error : 1
卓越飞翔博客
上一篇: C# 中数组的 LongLength 属性
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏