Скажите scanf
, чтобы указать количество отсканированных символов, а затем printf
напечатать это количество цифр после запятой.
Еще нужно позаботиться о знаке и цифрах передзапятая.
Приведенный ниже код предполагает начальные нули и никаких положительных знаков на входе.
void getXFromFile3(FILE* fptr){
double x;
int n;
fscanf(fptr, "%lf%n", &x, &n);
printf("%.*lf", /* the l length modifier is optional */
n /* number of characters scanned */
- (x < 0.) /* one off for the minus sign, if any */
- ((int)log10(fabs(x)) + 1) /* off as many as digits before the comma */
- 1, /* one off for the comma */
x);
}
Ху!; -)