이것은 내 read_double 함수입니다. 왜 내가! flush_buff()을 확인해야합니까? 아니면 그 효과는 무엇입니까? 나는 어떻게 든 그것을 이해할 수 없다. flush_buff()를 작성한 다음 DBL_MIN을 리턴 할 수 없습니까?부정! my_function()은 어떻게 C에서 내 함수에 영향을 줍니까?
double read_double(void) {
double x;
int c, status;
printf("Insert double: ");
status = scanf("%lf", &x);
if (status == EOF || (c = getchar()) == EOF) {
return DBL_MIN;
}
if (status != 1 || c != '\n' || x < DBL_MIN) {
if (!flush_buff()) { /*What is the purpose of this?*/
return DBL_MIN;
}
return DBL_MAX;
}
return x;
}
flush_buff 기능 :이 줄 바꿈 (\n
) 또는 파일 (EOF
)의 한쪽 끝을 만날 때까지
int flush_buff(void) {
int c;
while ((c = getchar()) != '\n' && c != EOF) {}
return c != EOF;
}
BTW'x> DBL_MAX'는 결코 참이되지 않습니다. – BLUEPIXY