Parse float fra datafil
Hej Eksperter.Jeg sidder og er ved at indlæse en datafil i C (jeg bruger gcc i ubuntu) hvori der indgår nogle flydende tal. Følgende kode opsummerer mit problem:
#include <stdio.h>
int main(){
char id[6];
char chain[6];
char res_id[6];
int num;
double phi, psi;
int sec_struct;
char* s1 = "10MH;A;ILE;2;-109.1;153.7;0\n";
int status = sscanf(s1, "%4s;%1s;%3s;%d;%f;%f;%d",
id, chain, res_id, &num, &phi, &psi, &sec_struct);
printf("status %d, id=%6s, phi=%f, psi=%f\n\n",status,id, phi, psi);
return 0;
}
Jeg så meget gerne at dette program printede både korrekt id og phi og psi, men output på min maskine ser således ud:
status 7, id= 10MH, phi=-3604656804995407320820947686758804829897392765905329388663905596376285437835343140099062532811332735906495708073095399607499980070003944412712407165049166772782987561985977893333324569088541598358064329085223721660499615971315541348923672820750893570619156201472.00, psi=0.00
Er der nogen der har en forklaring på det, og hvordan jeg løser det?