#include<stdio.h>
#include<stdlib.h>
#define N 20
#define sizea sizeof(a)
typedef struct a
{
int num;
int n;
int nu;
int numnum;
}a;
int read(a *a)
{
FILE *fp;
int i=0;
int n;
if((fp=fopen("D:\\aaa.txt","r"))==NULL)
{
printf("can not open file.\n");
exit(0);
}
fread(&a[i],sizea,1,fp);
while(!feof(fp))
{
i++;
fread(&a[i],sizea,1,fp);
}
n=i;
for(i=0;i<n;i++)
{fscanf(fp,"%d %d %d %d",&a[i].num,&a[i].n,&a[i].nu,&a[i].numnum);
printf("%d %d %d %d",a[i].num,a[i].n,a[i].nu,a[i].numnum);
}
fclose(fp);
return n;
}
void write(a *a,int n)
{
FILE *fpp;
if((fpp=fopen("D:\\aa.txt","w+"))==NULL)
{
printf("can not open file.\n");
exit(0);
}
fwrite(a,sizea,n,fpp);
fclose(fpp);
}
int main()
{
int i=0,n;
a a[N];
n=read(a);
write(a,n);
getchar();
return 0;
}
原因可能是fread(...)一般使用在二进制...吧