
fread不能正常的将txt文档里的数据读入,显示出来的全是0,请高手们不吝赐教。在线等!!
#include<stdio.h>#include<stdlib.h>#include<string.h>main(){FILE*in;FILE*out;if((in=f...
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
FILE *in;
FILE *out;
if ((in = fopen("data.txt","r"))== NULL)
{
printf("\n The file can not be opend \n");
exit(1);
}
int a1=60;
int a2=1024;
int i,j;
double * * array=NULL;
array = (double**) malloc (a1 * sizeof(double*));
for(i=0;i<a1;i++)
{
array[i]=(double *)malloc(a2*sizeof(double));
}
for(i=0;i<a1;i++)
{
fread(array[i],sizeof(double),1024,in);
}
fclose(in);
//fwrite(array[i],sizeof(double),1024,out);
for(i=0;i<60;i++)
{
for(j=0;j<1024;j++)
{
printf("%lf",array[i][j]);
}
}
for(i=0;i<a1;i++)
free(array[i]);
free(array);
} 展开
#include<stdlib.h>
#include<string.h>
main()
{
FILE *in;
FILE *out;
if ((in = fopen("data.txt","r"))== NULL)
{
printf("\n The file can not be opend \n");
exit(1);
}
int a1=60;
int a2=1024;
int i,j;
double * * array=NULL;
array = (double**) malloc (a1 * sizeof(double*));
for(i=0;i<a1;i++)
{
array[i]=(double *)malloc(a2*sizeof(double));
}
for(i=0;i<a1;i++)
{
fread(array[i],sizeof(double),1024,in);
}
fclose(in);
//fwrite(array[i],sizeof(double),1024,out);
for(i=0;i<60;i++)
{
for(j=0;j<1024;j++)
{
printf("%lf",array[i][j]);
}
}
for(i=0;i<a1;i++)
free(array[i]);
free(array);
} 展开
1个回答
展开全部
不知道你data.txt中的double数据时怎么存进去的?你不能简单地在txt中输入ASCII的double字符串,然后再用fread来读的,这样你很难计算机里面的ASCII转换为什么的double函数。。
fread和fwrite是用来读写二进制的,假如你想直接读文本文档里面的double数字的字符串,应该有fsanf。。
fread一般只用来读fwrite写入的二进制文件,不然很可能就乱码了。。
fread和fwrite是用来读写二进制的,假如你想直接读文本文档里面的double数字的字符串,应该有fsanf。。
fread一般只用来读fwrite写入的二进制文件,不然很可能就乱码了。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询