파일에서 특정 번호의 Foo
을 읽어야하는 할당이 있습니다. Foo
중 하나에 대해 파일 내부의 데이터가 잘못 작성된 경우 Foo
중 정확히 어느 것을 수정해야하는지 (예 :) 신호를 보내는 일반적인 방법은 무엇입니까?오류가 발생하는 위치를 추적하는 일반적인 C 관용구
내 코드는 다음과 같이 보입니다 :
이Foo foos[50];
FILE *file = fopen(...);
int i;
for (i = 0; i < sizeof(foos); ++i)
{
if (readFoo(&foos[i], file) != 1)
break;
}
읽으면 1
를 반환 할 것입니다 readFoo
기능이 성공을; 그렇지 않은 경우 음수를 반환하고 무엇이 잘못되었지만 오류가 어디에 있는지를 지정하지 않는 stderr
에 오류를 인쇄합니다. (깨끗하게) 이것을 어떻게 구현해야 사용자에게 i
의 값을 전달할 수 있습니까?
C++에서는 예외가 있습니다. C에서 나는 (무엇인가를 잘 작성하지 않을 때마다 따라 error
을 설정합니다 readFoo
)이 같은 일을 생각 : 어떤 다른 방법
/* These go in a source file */
const char *error = NULL;
const char error1[] = "Error 1 occurred.";
const char error2[] = "Error 2 occurred.";
const char *getLastError() {
return error;
}
거기이 문제를 해결하기 위해?
그건 좋은 생각 같아. –