본문 바로가기
C언어

[C언어] 두 개의 텍스트 파일을 비교하여 같은지 다른지를 알려주는 프로그램을 작성하라

by 이얏호이야호 2020. 5. 11.

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

 

더보기

두 파일을 모두 읽기 모드로 열고

첫 번째 파일과 두 번째 파일을 비교합니다.

서로 다른 글자가 나오면 두 파일은 서로 다릅니다를 출력하고 프로그램이 종료되고

서로 다른 글자가 없다면 두 파일은 서로 같습니다를 출력하고 프로그램이 종료됩니다

#include <stdio.h>

#include <stdlib.h>

int main(void) {

 FILE *fp1, *fp2;

 char file1[100], file2[100];

 printf("첫번쨰 파일 이름: ");

 scanf("%s", file1);

 printf("두번째 파일 이름: ");

 scanf("%s", file2);

 // 첫번째 파일을 읽기 모드로 연다.

 if( (fp1 = fopen(file1, "r")) == NULL ) {

 fprintf(stderr,"원본 파일 %s을 열 수 없습니다.\n", file1);

 exit(1);

 }

 // 두번째 파일을 읽기 모드로 연다.

 if( (fp2 = fopen(file2, "r")) == NULL ) {

 fprintf(stderr,"복사 파일 %s을 열 수 없습니다.\n", file2);

 exit(1);

 }

 // 첫 번째 파일과 두 번째 파일을 비교

 while( 1 ) {

 int c1 = fgetc(fp1);

 int c2 = fgetc(fp2);

 if( 		 )		// 둘 중 한 파일이 끝나면 break;

 break;

 if( 		 ) {		//c1, c2가 다르면 두파일은 서로다릅니다를 출력

 printf("두 파일은 서로 다릅니다.\n");

 return 0;

 }

 }

 printf("두 파일은 서로 같습니다.\n");		//c1, c2가 같으면 두파일은 서로 같습니다를 출력

 fclose(fp1);

 fclose(fp2);

 return 0;

}

 

 

 

더보기
#include <stdio.h>

#include <stdlib.h>

int main(void) {

 FILE *fp1, *fp2;

 char file1[100], file2[100];

 printf("첫번쨰 파일 이름: ");

 scanf("%s", file1);

 printf("두번째 파일 이름: ");

 scanf("%s", file2);

 // 첫번째 파일을 읽기 모드로 연다.

 if( (fp1 = fopen(file1, "r")) == NULL ) {

 fprintf(stderr,"원본 파일 %s을 열 수 없습니다.\n", file1);

 exit(1);

 }

 // 두번째 파일을 읽기 모드로 연다.

 if( (fp2 = fopen(file2, "r")) == NULL ) {

 fprintf(stderr,"복사 파일 %s을 열 수 없습니다.\n", file2);

 exit(1);

 }

 // 첫 번째 파일과 두 번째 파일을 비교

 while( 1 ) {

 int c1 = fgetc(fp1);

 int c2 = fgetc(fp2);

 if( c1 == EOF || c2 == EOF )

 break;

 if( c1 != c2 ) {

 printf("두 파일은 서로 다릅니다.\n");

 return 0;

 }

 }

 printf("두 파일은 서로 같습니다.\n");

 fclose(fp1);

 fclose(fp2);

 return 0;

}

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글