用c语言建立txt文件并写入和读出三个学生的姓名性别年龄家庭住址🙏🙏

用c语言建立txt文件并写入和读出三个学生的姓名性别年龄家庭住址🙏🙏🙏

#include<stdio.h>

#include<string.h>

#define N 3

struct MSTU { char name[20],addr[80]; int age,sex; };

void main()

{ MSTU mstudent[N];

  int i,n;

  FILE *fp;

  char buffer[256],s[2][3]={ "女","男" },sex[20];

  strcpy(mstudent[0].name,"李明"); mstudent[0].age=14; mstudent[0].sex=1;

  strcpy(mstudent[0].addr,"北京xx区xx路xx号01");

  strcpy(mstudent[1].name,"赵飞翔"); mstudent[1].age=13; mstudent[1].sex=1;

  strcpy(mstudent[1].addr,"北京xx区xx路xx号02");

  strcpy(mstudent[2].name,"王晓红"); mstudent[2].age=14; mstudent[2].sex=0;

  strcpy(mstudent[2].addr,"北京xx区xx路xx号03");

  if ( fp=fopen("student.txt","w+") )

  { for ( i=0;i<N;i++ )

    { sprintf(buffer,"%s %s %d %s\n",mstudent[i].name,s[mstudent[i].sex],

                   mstudent[i].age,mstudent[i].addr);

      fputs(buffer,fp);

    }

    fclose(fp);

  } else printf("无法建立输出文件。\n");

  if ( fp=fopen("student.txt","r") )

  { i=0;

    while ( !feof(fp) && i<N && fgets(buffer,255,fp) )

    { sscanf(buffer,"%s %s %d %s",mstudent[i].name,sex,&mstudent[i].age,

                                           mstudent[i].addr);

      mstudent[i].sex=( strcmp(sex,"女")==0 )?(0):(1);

      printf("%s %s %d %s\n",mstudent[i].name,s[mstudent[i].sex],

                   mstudent[i].age,mstudent[i].addr);

      i++;

    }

    fclose(fp);

  } else printf("无法打开文件读入数据。\n");

}

温馨提示:答案为网友推荐,仅供参考
相似回答