strcmp 함수 질문
마음
도전 4-5
#include stdio.h
#include string.h
#include stdlib.h
void file_close(FILE* fp1, FILE* fp2)
{
fclose(fp1);
fclose(fp2);
}
void ok_file(char* str1, char* str2)
{
FILE* fp1,* fp2;
char temp[2][50];
fp1 = fopen(str1, rt);
fp2 = fopen(str2, rt);
while((!feof(fp1)) && (!feof(fp2)))
{
fgets(temp[0], 50, fp1);
fgets(temp[1], 50, fp2);
if(strcmp(temp[0], temp[1])) ----------------0인지 1인지값을 지정안했는데요. 결과는 이상없네요
{
puts(두 개의 파일이 일치하지 않습니다.);
file_close(fp1, fp2);
return;
}
}
puts(두 개의 파일이 일치합니다.);
file_close(fp1, fp2);
}
int main(int argc, char* argv[])
{
if(argc 3)
{
puts([파일명] [텍스트파일 1] [텍스트파일 2]);
exit(1);
}
ok_file(argv[1], argv[2]);
return 0;
}
if문에 strcmp문을 쓰고 있는데 두개의 문자열을 비교만하지 값이 얼마인지도 모르는데..두개의 파일이 일치하는지
안하는지 어떻게 알수가 있는거죠?
if문에 있는 put함수(두개의 파일이 일치합니다)를 출력할지 아니면 if문 밖에 있는 put함수(두 개의 파일이 일치합니다.)
할지 갑자기 의문이 들어서요.
if(strcmp(temp[0], temp[1])!=0) 이렇게 써야지 정석아닌가요?
if(strcmp(temp[0], temp[1]))이렇게 써도 되는게 이해가 안되네요.
-
가시
strcmp 함수의 반환값을 참조하시면 됩니다. - 대명직업전문학교 -
-
가을빛
0은 거짓으로 0이외의 값은 참으로 취급하기 때문입니다.