#include <stdio.h>
#include <string.h>
int main(void)
{
FILE * fp1 = fopen("test1.txt", "rt");
FILE * fp2 = fopen("test2.txt", "rt");
int m1, m2;
if(fp1==NULL || fp2 == NULL)
{
printf("파일오픈에러");
return -1;
}
while((m1 = fgetc(fp1)) != EOF && (m2 = fgetc(fp2)) != EOF)
{
if(m1!=m2)
{
printf("두 파일은 서로 다릅니다");
return -1;
}
}
printf("두 파일은 서로 같습니다n");
fclose(fp1);
fclose(fp2);
return 0;
}
텍스트 파일 하나에는
a
b
c
다른 파일에는
a
b
c
d
로 저장해놨는데 왜 서로 같다고 나올까
코드 자체가 잘못 짜여져 있네. while 조건문이 m1과 m2가 EOF가 아닌 상태에서 while문 내부 작업을 수행하게 끔 되어 있는데 한 쪽 파일 포인터가 EOF를 반환하니까 while문을 아예 탈출해버리자나.
아! 내가 헷갈렸다! 그렇군요