
feof 함수는 파일의 끝에 도달했을 때 0을 반환하고, 그렇지 않은 경우 1을 반환합니다. 그러나 feof 함수를 사용하여 파일을 읽는 중에 0을 반환하더라도 오류가 발생하는 경우가 있습니다.
이러한 오류는 fscanf 함수의 반환값이 1이 아닌 다른 값인 경우에 발생합니다. fscanf 함수는 파일에서 데이터를 읽어와 변수에 저장하는 함수입니다. fscanf 함수의 반환값은 읽어온 데이터의 개수입니다. 만약 fscanf 함수의 반환값이 0이면, 파일의 끝에 도달한 것입니다. 만약 fscanf 함수의 반환값이 -1이면, 오류가 발생한 것입니다.
따라서 feof 함수를 사용하여 파일을 읽는 중에 오류가 발생하는 경우, fscanf 함수의 반환값을 확인하여 오류를 해결해야 합니다.
예를 들어, 위 코드에서 fscanf 함수의 반환값을 확인하여 오류를 해결할 수 있습니다.
#hostingforum.kr
c
while (fscanf(fp, "%s", str) == 1) {
if (feof(fp)) {
printf("파일의 끝에 도달했습니다.n");
break;
} else if (ferror(fp)) {
printf("오류가 발생했습니다.n");
break;
}
printf("%sn", str);
}
이 코드에서는 fscanf 함수의 반환값이 1이 아닌 경우, 오류가 발생한 것입니다. 오류를 해결하기 위해 feof 함수와 ferror 함수를 사용하였습니다. ferror 함수는 파일에서 오류가 발생한 경우 1을 반환하고, 그렇지 않은 경우 0을 반환합니다.
2025-04-04 10:16