Или пишете свою функцию, алгоритм простейший:
- каждая последующая цифра слева от точки (если её нет, то от конца строки) умнодается на 1, 10, 100 и т.д.
- каждая последующая цифра справа от точки умнодается на 0.1, 0.01 и т.д.
Вот небольшой пример:
Код
/* --- mysscanf_f() --------------------------------------------------------------------------------------- **
.* Преобразование из строки в формате "% *.*f" в число double
.* *s - указатель на строку
.* *d - указатель на double
.* -------------------------------------------------------------------------------------------------------- */
static void mysscanf_f( char *s, double *d )
{
int sign = 0;
double m;
for (; *s == ' '; s++ ) // пробелы вначале строки пропустим
;
if ( *s == '-' ) // смотрим знак
{ s++;
sign = 1;
}
for ( m = 10., *d = 0.; *s != '.' && *s != '\0'; s++ ) // целая часть
{ *d *= m;
*d += (double)( *s - '0' );
}
for ( m = 0.1; *s != '\0'; s++ ) // дробная
{ if ( *s == '.' )
continue;
*d += (double)( *s - '0' ) * m;
m *= 0.1;
}
if ( sign )
*d = -*d;
}