2015-01-11 5 views
0

줄 길이가 알려지지 않은 파일 (약 1500 행이므로 malloc/alloc 등은 메모리가 충분하기 때문에 필요하지 않습니다 ... 운좋게도 그 배열/포인터 명령을 아직 이해할 수 없기 때문에)을 읽을 수 있습니까? float 숫자, 기호 및 문자를 포함하여 특정 숫자를 추출하고 계산을 한 후 다른 파일에 다시 씁니다.숫자, 문자 및 기호를 포함하여 알 수없는 파일을 읽는 방법은 무엇입니까?

세 가지 예를 - 라인 :

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

'FILE * f, * g; \t f = fopen ("MPCORB_Distant.txt", "r"); \t g = fopen ("MPCORB_Distant_AvgKBOValues.txt", "w"); \t Nbr, H, G, Epoch, M, w, W, i, e, n, a, UP, Ref, Obs, Opp, Arc, rms, Pert1, Pert2, Comp, Type, Name, LastObs; \t double Res_a, Res_e, Res_i, Res_W, Res_w; \t int c; \t \t 동안 ((c =는 fgetc (F))! = EOF) \t { \t \t fscanf (F, "% LF % LF % LF % LF % LF % LF % LF % LF % LF % LF % & N, & H, & G, & Epoch, & M, & w, & W, & i, & e, & n, & a & apos; & lt; , & UP, & Ref, & Obs, & Opp, & Arc, & rms, & Pert1, & Pert2, & Comp, & Type, & Name, & LastObs); \t \t fprintf (g, "% .8lf % .8lf % .8lf % .8lf % .8lf \ n", w, W, i, e, a); \t} fclose (f); \t fclose (g); '무엇이 잘못 되었나요? – Lucas

+0

처음 질문에서 코드와 예제 행을 비교할 때 필자가 필요로하는 값이 정확히 올바른 순서로되어 있습니다. 나는이 값들 중 일부를 보았지만 인쇄 된 선들과 대부분 임의의 숫자들이 반복된다. – Lucas

답변

0

에 오신 것을 환영합니다! 기존 코드를 포함시키는 것이 항상 좋은 생각입니다. 그렇게 해 주셔서 감사합니다. 그러나 질문의 ​​일부로 그것을 보는 것이 도움이 될 것입니다. 질문을 편집하여 코드를 포함하고 형식을 잘 정할 수 있습니까?

내가 보는 한 가지 문제는 fscanf() 전화에서 formatting strings을 올바르게 사용하는 것입니다. 항상 %lf을 지정하지만 이는 double 값에만 적합하며 정수와 문자열도 구문 분석해야합니다.