【问题标题】:How to read from unknown file including numbers, letters, and symbols?如何读取未知文件,包括数字、字母和符号?
【发布时间】:2015-03-09 13:48:51
【问题描述】:

如何读取行长未知的文件(大约 1500 行,因此不需要 malloc/alloc 等,因为内存足够......幸运的是,因为我还不了解那些数组/指针命令) 包括浮点数、符号和字母,从中提取特定数字,进行一些计算并将它们写回到另一个文件中?

三个示例行:

02060    6.1   0.15 K14C9 134.52612  339.34971  209.27800    6.93836  0.3820989  0.01956864  13.6383665  0 MPO319108  1304  45 1895-2014 0.53 M-v 38h MPCLINUX   000A   (2060) Chiron             20141030
05145    7.1   0.15 K14C9  90.96884  354.94362  119.25398   24.73205  0.5736395  0.01074547  20.3385073  0 MPO169571   319  21 1977-2009 0.58 M-v 38h MPCMEL     400A   (5145) Pholus             20090418
07066    9.6   0.15 K14C9  67.95075  170.25614   31.23622   15.65639  0.5195581  0.00813869  24.4774642  1 MPO135426   105   9 1993-2004 0.48 M-v 38h MPCW       400A   (7066) Nessus             20040526

【问题讨论】:

  • FILE *f,*g; f = fopen("MPCORB_Distant.txt","r"); g = fopen("MPCORB_Distant_AvgKBOValues.txt","w"); double Nbr,H,G,Epoch,M,w,W,i,e,n,a,UP,Ref,Obs,Opp,Arc,rms,Pert1,Pert2,Comp,Type,Name,LastObs; double Res_a,Res_e,Res_i,Res_W,Res_w; int c; while ((c = fgetc(f)) != EOF) { fscanf(f,"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf\n",&Nbr,&H,&G,&Epoch,&M,&w,&W,&i,&e,&n,&a,&UP,&Ref,&Obs,&Opp,&Arc,&rms,&Pert1,&Pert2,&Comp,&Type,&Name,&LastObs); fprintf(g,"%.8lf %.8lf %.8lf %.8lf %.8lf\n",w,W,i,e,a); } fclose(f); fclose(g); 怎么了?
  • 比较开始问题中的代码和示例行时,我需要的值的顺序完全正确。我确实看到了其中一些值,但打印行中大部分是重复的,还有一些任意数字。

标签: c printf fopen scanf feof


【解决方案1】:

欢迎!包含您现有的代码总是一个好主意,所以感谢您这样做。但是,将其视为问题的一部分会有所帮助。您能否编辑问题以包含您的代码,并将其格式化?

我看到的一个问题是在您的fscanf() 通话中正确使用formatting strings。您总是指定%lf,但这仅适用于double 值,并且您还需要解析整数和字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多