请教一个有关于文件读写的问题?
老师让我们编一个程序要求如下:
定义一个结构:struct frec
{
int uid;
char login[name+1];
}
用该结构存入20条记录到一个文件中去,然后从该文件中读出第2,5,7,8四条记录.
并显示在屏幕上..
我编的程序如下:
#include<stdio.h>
#define name 1
FILE *fp;
struct frec
{
int uid;
char login[name+1];
};
main()
{
struct frec use[19];
char filename[4];
int i;
printf("please input the filename:");
for(i=0;i<4;i++)
scanf("%c",filename[i]);
fp=fopen(filename
,"w");
printf("please input the frec data:");
for (i=0; i<20; i++)
scanf("%d%s",&use[i].uid,use[i].login);
for (i=0; i<20; i++)
fwrite(&use[i],sizeof(struct frec),1,fp);
for (i=0; i<20; i++)
{
if(i==2)
{
fread(&use[i],sizeof(struct frec),1,fp);
printf("%4d %10s\n",&use[i].uid,use[i].login);
}
if(i==5)
{
fread(&use[i],sizeof(struct frec),1,fp);
printf("%4d %10s\n",&use[i].uid,use[i].login);
}
if(i==7)
{
fread(&use[i],sizeof(struct frec),1,fp);
printf("%4d %10s\n",&use[i].uid,use[i].login);
}
if(i==8)
{
fread(&use[i],sizeof(struct frec),1,fp);
printf("%4d %10s\n",&use[i].uid,use[i].login);
}
}
}
这个程序编译是能通过的,但是一运行就显示,指针没定义...
反正就是不行的了.
请教各位C语言的高手,帮我看看,哪里错了?