Avatar billede rene_p Nybegynder
15. maj 2003 - 13:56 Der er 7 kommentarer og
1 løsning

Streng konvertering til en float værdi i en strukturvariabel

Jeg skal have konverteret en streng til en float værdi.
I den stump kode nedenunder bruger jeg en sscanf til dette, men printf returnere 0.

while((ch = sLinie[i++]) != ':')
{
  sTemp[j++] = ch;
}

sTemp[j] = '\0';
sscanf(sTemp,"%f", &pny->timer);

printf("\n%f", &pny->timer);       

Er der nogen der kan hjælpe?
Avatar billede soreno Praktikant
15. maj 2003 - 13:59 #1
Avatar billede the_bma_man Nybegynder
15. maj 2003 - 14:00 #2
Hmm, kan du ikke bare konvertere den med atof ?
Avatar billede the_bma_man Nybegynder
15. maj 2003 - 14:01 #3
fcvt går "den anden vej"
Avatar billede soreno Praktikant
15. maj 2003 - 14:01 #4
Nej, det var forkert - kig her:
http://www.cplusplus.com/ref/cstdlib/strtod.html
Avatar billede rene_p Nybegynder
15. maj 2003 - 14:04 #5
Er der ikke nogen der ved hvordan man gør det med en sscanf?
Avatar billede segmose Nybegynder
15. maj 2003 - 14:19 #6
float
  timer;
char *sTemp = "123.45";

sscanf(sTemp,"%f", &timer);

printf("\n%f", timer);      // her havde du en & for meget.
Avatar billede rene_p Nybegynder
15. maj 2003 - 14:52 #7
Argumentet "%f" virker ikke med sscanf.

Der må findes et andet argument med sscanf, men jeg ved ikke hvilket.
Avatar billede segmose Nybegynder
15. maj 2003 - 15:31 #8
Er pny allokeret? exemplet jeg har givet oversætter og køre hos mig.

prøv at sætte assert(pny); ind foran sscanf linien, prøv at indsætte dette.

if (sscanf(sTemp,"%f", &timer) != 1)
  printf("det virker ikke\n");
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester