Jak mam przekształcić ciąg cyfr na wartość zmiennopozycyją podwójnej precyzji??
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
double atof(s) /* przeksztalc tekst na wartosc zmiennopozycyjna */
char s[100];
{
double val, power; /* znormalizowana liczba*/
int i, sign;
int exp; /* wykladnik potegi */
for(i=0; isspace(s[i]);i++) /*pomin znaki biale */
;
sign= (s[i]=='-')?-1:1; /* znak liczby*/
if(s[i]=='+' || s[i]=='-')
i++;
for(val=0.0;isdigit(s[i]);i++)
val=10.0*val+(s[i]-'0');
if(s[i]=='.')
i++;
for(power=1.0;isdigit(s[i]);i++){
val=10.0*val+(s[i]-'0');
power*=10.0;}
val=sign*val/power;
if(s[i]=='e' || s[i]=='E'){
sign=(s[++i]=='-')?-1:1;
if(s[i]=='+' || s[i]=='-')
i++;
for(exp=0;isdigit(s[i]);i++)
exp=10*exp+(s[i]-'0');
if(sign==1)
while(exp-->0) /* wykladnik dodatni */
val*=10;
else
while(exp-->0) /* wykladnik ujemny */
val/=10;
}
return val;
}
main()
{
char d[100];
double n;
clrscr();
printf(" dopoki nie nacisniesz Enter, beda wprowadzane znaki");
printf("\nwprowadz znak z klawiatury : ");
gets(d);
n=atof(d);
printf("\n wartosc double=%.2f",n);
return 0;
}
to jest caly moj kod,jest w nim pare bledow (program.c error: argument "s" doesn't match prototype
/usr/include/stdlib.h error: prototype declaration) ale nie wiem jak je zmienic
program na odczytywac z klawiatury ciag znakow pomijac biale itp a w momencie odczytu cyfr i E i + - zamienic je cos w stylu 123.4E-1 ma byc potem 12.34.
prosze o pomoc