69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct studentstruct
{
int No;
char Name[20];
int Age;
}student[3];
void main()
{
int i=0;
int studentNo=3;
printf("请输入学生数据:\n");
for(i=0;i<3;i++)
scanf("%d%s%d",&student[i].No, student[i].Name, &student[i].Age);
//SaveFile();
printf("No\t\tName\t\tAge\n");
printf("请输入要显示学生数据的学生学号:\n");
scanf("%d",&studentNo);
GetFileData(studentNo);
}
void GetFileData(int no)
{
struct studentstruct *p;
FILE *fp;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("不能打开文件读请按下任意键结束!\n");
getch();
exit(1);
}
p=&student[0];
fseek(fp,(no-1)*sizeof(struct studentstruct),0);
fread(p,sizeof(struct studentstruct),1,fp);
printf("%d\t\t%s\t\t%d\n",p->No, p->Name, p->Age);
fclose(fp);
}
int flag=fseek(fp,(no-1)*sizeof(struct studentstruct),0);
if(flag!=0)
{
puts("fseek失败,文件指针实际上根本没有移动!\n");
}
void SaveFile(void)
{
FILE *fp;
int i=0;
if( (fp=fopen("student.txt","w"))==NULL )
{
printf("不能打开文件读请按下任意键结束!\n");
getch();
exit(1);
}
for( i=0; i<3; i++ )
if(fwrite(&student[i],sizeof(struct studentstruct),1,fp)!=1)
printf("不能写文件\n");
fclose(fp);
}