提问人:Lucas 提问时间:1/12/2015 最后编辑:DeduplicatorLucas 更新时间:12/11/2015 访问量:116
如何从未知文件中读取,包括数字、字母和符号?
How to read from unknown file including numbers, letters, and symbols?
问:
你怎么能读懂一个行长未知的文件(大约 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
答:
0赞
broadmonkey
1/13/2015
#1
欢迎!包含现有代码总是一个好主意,因此感谢您这样做。然而,将其视为问题的一部分会有所帮助。您能否编辑问题以包含您的代码,并很好地格式化它?
我看到的一个问题是在调用中正确使用格式字符串。您始终指定,但这仅适用于值,并且还需要分析整数和字符串。fscanf()
%lf
double
评论
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);
怎么了?