sywr你的输出不正确我认为是:1、程序运行到if((new=fopen("data.data","r"))==NULL)exit(0);后就中断了!这句语句的确没有错误但是在windows下用tc时直接打开一个非tc自建的只读文件好象返回的总是NULL,我解决的方法是将fopen("data.data","w");(这一步只要在调试的时候运行一下就可以了)运行一次建立一个只写文件然后屏蔽掉此语句,以后不管你怎么修改这个文件中的内容tc均可直接将其做只读文件打开;
2、fscanf(new,"%9.5f ",&ik[j]);
这句是对的但是如果data.data中数据的书写格式必须与之对应否则你的输出必定是奇形怪状的!强烈建议改为scanf(new,"%f\t ",&ik[j]);并且data.data中的数据均用且只用tab键来隔开!
#include "stdio.h"
#include "conio.h"
main(){
FILE * new;
FILE * out;
int i=0,j;
float ik[18];
clrscr();
/*fopen("data.data","w"); */
if((new=fopen("data.data","r"))==NULL)exit(0);
out=fopen("out.data","w");
for(j=0;j<18;j++){
fscanf(new,"%f\t ",&ik[j]);
printf("%f\n",ik[j]);
fprintf(out,"%9.5f ",ik[j]);
i++;
if(i%9==0)fprintf(out,"\n");
}
fclose(new);
fclose(out);
getch();
}
[此贴子已经被作者于2005-5-20 15:50:23编辑过]