读取数据并写入文件的有关问题

读取数据并写入文件的问题
文本文件中有一列9435个数据,现想将这些数据依次排列成85行111列的表格再写入txt文件中
现有程序如下(MFC):
void CWenduchazhiDlg::OnButton6() 
{


  double a[9435];
  for(int i=0;i<=9435;i++)
  {
  a[i]=0;
  }  

FILE *in;

if((in=fopen("2chisuntouwendu.txt","r"))!=NULL)

for(int i=0;i<=9435;i++)
{
fscanf(in,"%-3.1f",a[i]);
}
fclose(in);
}

FILE *out;

if((out=fopen("2chisuntoutable.txt","w"))!=NULL)

fprintf(out,"%-3.1f",a[0]);
for(int i=0;i<=85;i++)
{
for(int j=1+111*i;j<=111*(i+1);j++)
{
fprintf(out,"%-3.1f",a[j]);
}
  fprintf(out,"\n");
}
fclose(out);
}

}
结果输出文件中的数据全是0(初始化的)
请教大家哪里出了问题?

------解决方案--------------------
一个问题是for循环越界了,for(int i=0;i<9435;i++)只能到9434才对。
------解决方案--------------------
探讨
double a[9435];
for(int i=0;i<=9435;i++)
这还不越界?a[9435]还不越界?最多只能到a[9435]而已。


引用:

引用:
一个问题是for循环越界了,for(int i=0;i<9435;i++)只能到9434才对。


数组没有越界,只是设计得太不合理了

------解决方案--------------------
for(int j=1+111*i;j<=111*(i+1);j++)
{
fprintf(out,"%-3.1f",a[j]);
}
你这儿的j是从112开始的,并且每次都是从这里开始,是不是有问题呢。
问题需要逐步定位,首先你要确定从in文件里读取的数据是不是正确写入的,如果是正确的那么就是写入文件有问题,如果读取的数据不正确,写入的是初始化的数据就不怪了哦。
------解决方案--------------------
2chisuntouwendu.txt你这个文件里面是输入数据,是以空格分开的浮点数吗,很想看看你的输入文件?
看看你读出来的对不对,如果读出来的都是0,那么写进去的肯定都是0啊?

估计你读出来的都是0.
单步调试一下,注意你要读一个文件,如果他是空的,那么你读不到什么东西,你要先向文件中写点数据啦,保证能读到。