讀取這行數據我試過%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
可能有人請告訴我用什麼格式?謝謝!
讀取這行數據我試過%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
可能有人請告訴我用什麼格式?謝謝!
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);
使用正確的格式
#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;
}
我從來沒有見過ideone.com,thanx的提示:) – nonsensickle
感謝您的代碼。我也嘗試了所有這些格式以及我的文件無濟於事。 –
你有沒有看着http://en.wikipedia.org/wiki/Scanf_format_string – nonsensickle
怎麼樣''c0' C1 '和'c2'聲明? –
@nonsensical:Thx給裁判,我查了一下。我重新格式化數據文件(在行末尾沒有「」),然後用代碼重新讀取文件。有用! –