반응형
두 개의 텍스트 파일을 서로 비교하는 프로그램을 작성하여 보자. 파일의 이름은 사용자에게 입력받는다. 만약 두개의 파일이 일치하면 "파일은 서로 일치함"을 출력하며 일치하지 않으면 일치하지 않는 첫 번째 문장을 다음과 같이 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 100 int main(void) { FILE *fp1; FILE *fp2; char a[SIZE]; char b[SIZE]; char f1[SIZE]; char f2[SIZE]; int bytes=0; printf("첫번째 파일 이름: "); gets(a); printf("두번째 파일 이름: "); gets(b); if((fp1=fopen(a,"r"))==NULL) { fprintf(stderr,"파일 열기 오류1\n"); exit(1); } if((fp2=fopen(b,"r"))==NULL) { fprintf(stderr,"파일 열기 오류2\n"); exit(1); } while(1) { fgets(f1,sizeof(f1),fp1); //fgets는 \n(개행문자) 나올 때까지 문자열을 받음 fgets(f2,sizeof(f2),fp2); if(strcmp(f1,f2)!=0) // f1이 크면 양, f2가 크면 음, 같으면 0 { printf("<< %s\n", f1); printf(">> %s\n", f2); break; } if(feof(fp1)!=0) // 파일의 끝이면 not0, 끝이 아니면 0 { printf("파일은 서로 일치함\n"); break; } } return 0; } | cs |
만약 일치하지 않는 모든 문장을 나타내고 싶으면 strcmp 가 들어간 if 문에서 break; 만 빼주면 될 것이다.
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글
인쇄 가능 문자 수 세기 (0) | 2017.02.13 |
---|---|
성적 평균 구하기 (0) | 2017.02.12 |
fgets 함수 (0) | 2017.02.11 |
파일 복사 (0) | 2017.01.31 |
대문자로 변경 (0) | 2017.01.31 |