求解,这个为什么能读出全部数据啊?
#include <stdio.h>#include <malloc.h>
#include <stdlib.h>
float *ICBC;
int count;
void main()
{
int i=0;
FILE *fp;
if((fp=fopen("E:\\C作业\\10.1516\\工商银行.txt","r"))==NULL)
{
printf("文件打开失败!退出程序!\a");
return;
}
ICBC=(float*)malloc(10*sizeof(float));
count=10;
if(0==ICBC)
{
printf("内存分配失败!");
return;
}
while(1)
{
if(feof(fp)!=0)
break;
char str[10];
fscanf(fp,"%s",str);
ICBC[i]=atof(str);
printf("%f\n",ICBC[i]);
i++;
if(i==count) {
float *temp=(float*)realloc(ICBC,(count+5)*sizeof(float));
if(0==temp)
{
printf("内存分配失败!");
return;
}
ICBC=temp;
count=count+5;
}
}
printf("\n总共读入了%d行数据。\n",i);
fclose(fp);
free(ICBC);
ICBC=0;
}
文件中共有540行 只读了后面近300行
工商银行.rar
(1.27 KB)