Это моя функция 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 функция:
int flush_buff(void) {
int c;
while ((c = getchar()) != '\n' && c != EOF) {}
return c != EOF;
}
BTW 'x> DBL_MAX' никогда не становится правдой. – BLUEPIXY