读取数据并写入文件的有关问题
读取数据并写入文件的问题
文本文件中有一列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才对。
------解决方案--------------------
------解决方案--------------------
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.
单步调试一下,注意你要读一个文件,如果他是空的,那么你读不到什么东西,你要先向文件中写点数据啦,保证能读到。
文本文件中有一列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才对。
------解决方案--------------------
------解决方案--------------------
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.
单步调试一下,注意你要读一个文件,如果他是空的,那么你读不到什么东西,你要先向文件中写点数据啦,保证能读到。