2013-05-15 64 views
0

讀取這行數據我試過%f%g%e和長版本的一樣。C:我需要從文件「-2.628489e-03 -1.194542e-03 -1.073491e-02」

例如。 fscanf(inFile,"%g %g %g ",&c0,&c1,&c2);

結果

-1.1546e + 09 -1.16415e + 09 -1.13768e + 09

可能有人請告訴我用什麼格式?謝謝!

+1

你有沒有看着http://en.wikipedia.org/wiki/Scanf_format_string – nonsensickle

+2

怎麼樣''c0' C1 '和'c2'聲明? –

+0

@nonsensical:Thx給裁判,我查了一下。我重新格式化數據文件(在行末尾沒有「」),然後用代碼重新讀取文件。有用! –

回答

0

c的情況? is double

double c0,c1,c2; 
fsscanf(inFile, "%lf %lf %lf", &c0,&c1,&c2); 

case of c?是浮

float c0,c1,c2; 
fsscanf(inFile, "%f %f %f", &c0,&c1,&c2); 
1

使用正確的格式

#include <stdio.h> 

int main(void) { 
    float f1, f2, f3; 
    double d1, d2, d3; 
    long double l1, l2, l3; 

    fscanf(stdin, "%f%f%f", &f1, &f2, &f3); /* scan floats */ 
    fscanf(stdin, "%lf%lf%lf", &d1, &d2, &d3); /* scan doubles */ 
    fscanf(stdin, "%Lf%Lf%Lf", &l1, &l2, &l3); /* scan long doubles */ 

    printf("floats: %f %f %f\n", f1, f2, f3); /* print floats (they're automagically converted to doubles) */ 
    printf("doubles: %f %f %f\n", d1, d2, d3); /* print doubles */ 
    printf("longs: %Lf %Lf %Lf\n", l1, l2, l3); /* print long doubles */ 

    return 0; 
} 

code "running" at ideone with your inputs

+0

我從來沒有見過ideone.com,thanx的提示:) – nonsensickle

+0

感謝您的代碼。我也嘗試了所有這些格式以及我的文件無濟於事。 –