문제점이 있습니다. 나는 두 개의 파일에서 Strings를 읽고 char에 의해 char을 비교해야하며, 차이점과 차이점을 알려준다. 나는 포인터와 모든 물건을 만들었지 만 문제는 첫 번째 파일의 끝에 올 때이다. (짧은 파일의 길이 만 읽어야한다.) for 루프가 끝날 때까지 마지막 String을 비교할 수 없다. '\ n', 마지막 행에는 \ n이 없습니다. 하지만 '\ 0'을 for 루프에 넣으면 다른 쪽에서는 잘못된 결과를 얻습니다. 왜냐하면 '\ n'이 char로 간주되기 때문입니다. 이 문제를 어떻게 처리합니까? 제안? char 차이를 셀 필요가 있기 때문에 strcmp()를 사용하고 싶지는 않습니다. 다른 조건도 있습니다.두 파일 비교 char by char - C에서 파일 오류 끝
while(!feof(fPointer)){
zeichnen = 0;
fgets(singleLine, 150, fPointer);
fgets(singleLine2, 150, fPointer2);
length = strlen(singleLine); // save the length of each row, in order to compare them
length2 = strlen(singleLine2);
if(length <= length2){
for(i=0; singleLine[i] != '\n'; i++){
singleLine[i] = tolower(singleLine[i]);
singleLine2[i] = tolower(singleLine2[i]);
if(singleLine[i] != singleLine2[i]){
zeichnen++;
}
}
printf("Zeile: %d \t Zeichnen: %d\n", zeile, zeichnen); // row, char
참고 : 처리 할 ** 두 가지 ** EOF 조건이 있습니다. 참고 2 :'feof()'를 사용하지 마십시오. http://stackoverflow.com/q/5431941/905902 – wildplasser
이전에 파일을 비교하고 포함시킬 파일을 결정 했으므로 두 가지 EOF 조건이 필요하지 않습니다. while 루프에서 이것은 내 문제가있는 코드의 일부일뿐입니다. –
주 3 : 모든 IO 함수의 반환 값을 항상 확인하십시오 (stdio/stderr에 대한 일반 인쇄는 제외). 왜냐하면 wpuld가 그 값보다 지루해지기 때문입니다. – hyde