#include <stdio.h>
int main(void)
{
FILE * fp1 = fopen("test1.txt", "rt");
FILE * fp2 = fopen("test2.txt", "rt");
int m1=0, m2=0;
if(fp1==NULL || fp2 == NULL)
{
printf("파일오픈에러");
return -1;
}
while(1)
{
m1 = fgetc(fp1);
m2 = fgetc(fp2);
if(m1 != m2)
{
printf("두 파일은 서로 다릅니다");
return -1;
}
if(m1 == EOF && m2 == EOF)
break;
}
printf("두 파일은 서로 같습니다");
return 0;
}
이런 방법을 생각 못했다니
흠...포지션 변수는 널체크 뒤로 땡기고, 널뒤에 파일크기 비교해서 다르면 재끼고, 굳이 포인터위치 비교는 왜하는지 모르겠으며... 뭐 그렇다.
포인터위치 비교라니.. 어느 부분을 말씀하시는겁니까
eof체크 왜하냐고 적는다는거 잘못적었네.. 그냥 처음에 null체크하고 포인터 맨끝으로 이동시킨뒤에 파일크기 체크하고 파일크기 다르면 종료시키고, 같으면 큰것 기준으로 파일크기만크만 루프돌리면되는데 왜 루프돌때마다 쓸때없이 eof체크를 하냐공... 그것도 둘다...
저도 그렇게 만든거 밑에 올렸었는데요 제가 머리가 잘 안돌아가서 그런지 큰것 기준으로 루프 돌리는게 더 복잡하게 나옴...
chodadoo // 헐..