正如你所看到的那样,在代码中我打印的顺序不同于 输入,而且大多数都是用一些。消除的。格式化的scanf。 但是如果你匹配,除了第一行输出是可预测的。 希望我很清楚 shashank hi 对不起,正确的样品输出代码是 18001844.273438 135633.742190 44.273438 30 5000 14 110916.722168 274533.527344 36.722168 48 30 504 110916.442383 274533.421875 36.442383 48 30 504 110916.162598 274533.316406 36.162598 48 30 504 110915.882813 274533.210938 35.882813 48 30 504 110915.603027 274533.105469 35.603027 48 30 504 你可以在我的代码中看到已经以不同的顺序打印了 而不是输入,并且用一些。(不要担心它的故意)取消了 但如果你匹配输出是可预测的,除了第一行,因为前面说的是。 plz help shashank sh ********* @ gmail.com 写道: .... snip ... 正如你所看到的那样,我在代码中打印的顺序不同于输入,最重要的是用一些。消除了。在格式化的scanf中。但如果你匹配除了第一行,输出是可预测的。 希望我很清楚 不,你不是。为什么你想让任何人都难过 愿意帮助你?汇总一个可编辑的完整源代码, 将行长限制为65或甚至72个字符,并使用适当的 缩进,以及明确的输入样本。所有在一个 消息。 并摆脱非标准部分,如getch。 然后有人可能决定剪切和粘贴并编译。 - "如果你想通过groups.google.com发布一个后续网站,不要使用 破损的回复链接在文章的底部。点击 " show options"在文章的顶部,然后点击 回复在文章标题的底部。 - Keith Thompson hi all,I,m trying to read a space delimited file with the use of formatedinput through fscanf. But surprisingly i am able to read all the 4999lines of data except the "first line" which is giving random output(i.enot present in the file). the code is given below(the relevant part).sample input from the data file01 48554.73828 504 30.48.37.001953 76.15.33.6328132 48554.67969 504 30.48.36.722168 76.15.33.5273443 48554.63281 504 30.48.36.442383 76.15.33.4218754 48554.58594 504 30.48.36.162598 76.15.33.3164065 48554.54297 504 30.48.35.882813 76.15.33.210938the output(the first line)18001844.273438 135633.742190 44.273438 30 5000 142 48554.67969 504 30.48.36.722168 76.15.33.5273443 48554.63281 504 30.48.36.442383 76.15.33.4218754 48554.58594 504 30.48.36.162598 76.15.33.3164065 48554.54297 504 30.48.35.882813 76.15.33.210938I got this prob before when i was only reading the first two columnsbut as you might have noticed the leading ''0'' before 1 solved it.Surprisingly i can still read the first two columns correctly but thelater ones are the ones that get of of hand. That too only in the firstline. rest 4999 lines are read just fine. I cannot figure it out. plzhelp.its importantshashank(i am using borland c++ 5.5, win2000)_______________________________fp=fopen ("TEMP31.TXT","r");if (fp==NULL){ puts("cannot open file");exit(1);}while ((fgetc(fp))!=EOF){fscanf(fp,"%d%lf%d%d.%d.%lf%d.%d.%lf",&x[a],&y[a],&fl_h[a],&latdeg[a],&latmin[a],&latsec[a],&longdeg[a],&longmin[a],&longsec[a]);printf ("\n%d %lf %d %d %lf %d %d %lf%d",x[a],y[a],latdeg[a],latmin[a],latsec[a],longdeg[a],longmin[a],longsec[a],fl_h[a]);//(herewhen i print it gives the correct values)if ((a%100)==0) {getch();} else{}a=a+1;}fclose(fp);getch();for (i=0;i<AR;i++){lat[i]=(latsec[i]+(latmin[i]*60)+(latdeg[i]*3600));lon[i]=(longsec[i]+(longmin[i]*60)+(longdeg[i]*3600));printf ("\n%lf %lf %lf %d %d%d",lat[i],lon[i],latsec[i],latmin[i],latdeg[i],fl_h[i]);// from hereon i get junk valueif ((i%100)==0) {getch();} else{}}getch();_______________________________this is the starting code i.e the code before the above given progsegment, the initialisations and all (though i dont think it will beneccessary but just to be sure)#include<stdio.h>#include<conio.h>#include<math.h>#include<stdlib.h>#define ARRAY 5000#define AR 4999#define PI 3.142857#define CONV 30.8333main(){clrscr();FILE *fp;static intx[AR],latdeg[AR],latmin[AR],longdeg[AR],longmin[AR],fl_h[AR];static doubley[AR],longsec[AR],latsec[AR],lat_p[100],long_p[100],lat_m[100];static doublelong_m[100],lat[AR],lon[AR],dist_p[100],dist_m[100],p[100],m[100],hp[100],hm[100],lata,longa,latb,longb,latp,longp,latm,longm,dist_ f,dist_i,pa,t,ta,tta,tta1,ttta,ttta1;int a=0,b=0,c=0,d=0,e=0,ca=0,da=0,f=0,g=0,i,j,z,sl=0,s l1=0;doublesa=0.0,sa1=0,sb=0.0,sc=0.0,sd=0.0,se=0,sf=0,sg=0,s g1=0,sh=0,sh1=0,xa=0,xb=0,xp=0,xm=0,ya,yb,yp=0,ym= 0;static float fl_p[100],fl_m[100],fl_hp,fl_hm,fl_ha,fl_hb;_________________***********_______________ 解决方案 hi,i''m sorry, the correct sample output is18001844.273438 135633.742190 44.273438 30 5000 14110916.722168 274533.527344 36.722168 48 30 504110916.442383 274533.421875 36.442383 48 30 504110916.162598 274533.316406 36.162598 48 30 504110915.882813 274533.210938 35.882813 48 30 504110915.603027 274533.105469 35.603027 48 30 504As you can see that in the code i have printed in different order thanthe input and most of all done away with some "." in formatted scanf.But still if you match except the first line the output is predictable.hope i am clearshashank hii''m sorry, the correct sample output code is18001844.273438 135633.742190 44.273438 30 5000 14110916.722168 274533.527344 36.722168 48 30 504110916.442383 274533.421875 36.442383 48 30 504110916.162598 274533.316406 36.162598 48 30 504110915.882813 274533.210938 35.882813 48 30 504110915.603027 274533.105469 35.603027 48 30 504as you can see in the code that i have printed it in a different orderthan input and done away with some "."s(don''t worry its intentional)but if u match the output is predictable except the first line as isaid earlier.plz helpshashank sh*********@gmail.com wrote:.... snip ... As you can see that in the code i have printed in different order than the input and most of all done away with some "." in formatted scanf. But still if you match except the first line the output is predictable. hope i am clearNo, you are not. Why do you want to make it hard for anyonewilling to help you? Put together a compilable complete source,limiting line length to 65 or even 72 chars, with properindentation, together with a clear sample of the input. all in onemessage.And get rid of the non-standard portions, such as getch.Then someone may decide to cut and paste and compile.--"If you want to post a followup via groups.google.com, don''t usethe broken "Reply" link at the bottom of the article. Click on"show options" at the top of the article, then click on the"Reply" at the bottom of the article headers." - Keith Thompson 这篇关于用c读取txt文件的第一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
09-05 17:26
查看更多