Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

2つのファイルを比較して不一致を報告するCプログラム


Cプログラミング言語では、プログラマーはファイルを超過し、ファイルのコンテンツを読み書きできます。

ファイルは単純なメモリです 情報を保存できるブロック。ここではテキストのみを扱います。

このプログラムでは、2つのファイルを比較し、発生した不一致を報告します。これらのファイルはほとんど同じですが、異なる文字が含まれている場合があります。また、プログラムは最初の不一致が発生したファイルの行と位置を返します。

アルゴリズム

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.

#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 == '\n' && ch2 == '\n'){
         line++;
         pos = 0;
      }
      if (ch1 != ch2){
         error++;
         printf("Line Number : %d \tError"
         " Position : %d \n", line, pos);
      }
      ch1 = getc(fp1);
      ch2 = getc(fp2);
   }
   printf("Total Errors : %d\t", 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;
}

出力

// 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

  1. 2 つの Excel ファイルを比較して違いを強調する方法

    コンピューターの異なるフォルダーに、似たような名前の Excel ファイルが 2 つあります。ファイルが重複しているか、同じ Excel ブックの異なるバージョンであるかをどのように判断しますか?このチュートリアルでは、コンピューターに Excel がインストールされていなくても、2 つの Excel ファイルを比較する方法を紹介します。 これらの比較ツールは、Excel ワークシートの矛盾したデータ、古い値、壊れた数式、間違った計算、およびその他の問題を見つけるのに役立ちます。 1. 2 つの Excel シートを比較:並べて表示 シートのデータを一目で確認できる場合は、それらを別のウィ

  2. Windows 10 でフォルダーとファイルを比較する方法。

    Windowsでフォルダーとファイルを比較したい場合は、この記事を読み続けてください。ファイルとフォルダーを比較および同期するための非常に便利で無料のツールをいくつか紹介します. あるフォルダーから別の宛先フォルダーに多数のファイルをコピーする場合、すべてのファイルが確実に宛先にコピーされるようにする必要があります。ただし、各フォルダーとファイルを個別に手動で比較して、同じ内容が含まれていることを確認するのは困難です。 この記事では、2 つの異なるディレクトリの内容を簡単に比較し、それらを同期して正確なミラー コピーを取得する方法を説明します。 Windows 11/10/8/7 OS