| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1155 人关注过本帖
标题:[讨论]关于从文件读入数据的问题!
只看楼主 加入收藏
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

加个判断,当文件没结束的时候读数据,文件结束就不读了。
for(i=0;i<200;i++)
{
if(!feof(in))
fscanf(in,"%d",&xx[i]);
else break;
}
此时的i就是读入的数的个数。
再对这i个数排序就好,并输出这i个排序后的数就行,
您的问题出在总是把循环的上限都写成200,读出读入总要200次
实际上,只要把循环上限写为i即可。


对不礼貌的女生收钱......
2006-08-04 21:25
ChinaTang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-7-5
收藏
得分:0 

嗯,你这个程序怎么看都是对的。但是的确程序出来的结果不对啊,真晕!我上传有原程序,帮着调下嘛,谢谢了


2006-08-04 23:07
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

/*这份代码经源码格式软件格式化过
yang_hx@neusoft.com */
#include <stdio.h>
#include <string.h>
#include <conio.h>
int xx[200],b[10];
int maxline=0 ;
void jsSort(int length)
{
int i,j,t ;
for(i=0;i<length-1;i++)
{
for(j=i+1;j<length;j++)
{
if(xx[i]%1000<xx[j]%1000||(xx[i]%1000==xx[j]%1000)&&(xx[i]<xx[j]))
{
t=xx[i];
xx[i]=xx[j];
xx[j]=t ;
}
}
}
for(i=0;i<10&&i<length;i++)b[i]=xx[i];

}

main()

{
int length;
length=readDat();
jsSort(length);

writeDat(length);
system("pause");

}

readDat()

{

FILE*in ;

int i ;

in=fopen("in.dat","r");
for(i=0;i<200;i++)
{
if(!feof(in))
fscanf(in,"%d",&xx[i]);
else
break;
}
fclose(in);
return i;
}

writeDat(int length)

{

FILE*out ;

int i ;
out=fopen("out.dat","w");
for(i=0;i<10&&i<length;i++)
{
printf(" %d ",b[i]);
fprintf(out,"%d\n",b[i]);
}

fclose(out);

}


已经改了您的程序.您再看看。


对不礼貌的女生收钱......
2006-08-06 18:04
ChinaTang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-7-5
收藏
得分:0 
太感谢了哈,让你费了这么多心。我调试了下,程序可以正常的运行。
然后我又简化 了下,可以不用参数就可以了,将i赋给length了,其它程序就跟以前一样。还有你那个在输出b的时候i<length真是细心啊,如果只有少于10个数的话,没这个就又有问题了,呵呵。
谢谢谢谢

2006-08-06 22:12
pulf
Rank: 1
等 级:新手上路
帖 子:78
专家分:0
注 册:2006-7-31
收藏
得分:0 
帮你顶一下吧。

2006-08-07 20:58
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用ChinaTang在2006-8-2 16:37:03的发言:

应该是fscanf。不过这个程序我也试了下,不行的。
其实我就是想实现,从文件读入未知个数的数,然后计算输入的数据有多少个,将这些数再进行排序。
我开始用for循环200下读入数据结果没读入的数程序就按0计了,以致于后面按升序排的时候全是0,就是想找个方法使读入的数能真正成为数组的数,而其它就不读入。


我每次都是这样从文件读入数据的,怎么会有错哦!

倚天照海花无数,流水高山心自知。
2006-08-07 22:58
快速回复:[讨论]关于从文件读入数据的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028086 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved