bark. gm 2021-05-30 14:42 采纳率: 75%
浏览 22
已采纳

C语言关于文件的输入,可以正常运行,文件里面东西不全

#include<stdio.h>

#include<stdlib.h>

#include<fcntl.h>

#define SIZE 3

struct student

{

 long num;

 char name[10];

 int age;

 char address[10];

}stu[SIZE],out;

void fsave()

{

 FILE*fp;

 int i;

 if((fp=fopen("student","wb"))==NULL)

 {

  printf("Cannot open file.\n");

  exit(1);

 }

 for(i=0;i<SIZE;i++)

  if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

   printf("File write error.\n");

  fclose(fp);

}

main()

{

 FILE *fp;int i;

 printf("please enter student's number,name,age and address.\n");

 for(i=0;i<SIZE;i++)

 {

  printf("Input student %d:",i+1);

  scanf("%d%s%d%s",&stu[i].num,stu[i].name,&stu[i].age,stu[i].address);

 }

 fsave();

 return 0;

}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-05-30 17:02
    关注

    修改,供参考:

    #include<stdio.h>
    
    #include<stdlib.h>
    
    #include<fcntl.h>
    
    #define SIZE 3
    
    struct student{
    
        int  num;
    
        char name[16];
    
        int  age;
    
        char address[32];
    
    }stu[SIZE],out;
    
    void fsave()
    
    {
         FILE*fp;
    
         int i;
    
         if((fp=fopen("student","wb"))==NULL)
    
         {
              printf("Cannot open file.\n");
    
              exit(1);
    
         }
    
         for(i=0;i<SIZE;i++)
         {
    
             fprintf(fp,"%d %s %d %s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].address);//格式化输入
             //if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
             //{
             //    printf("File write error.\n");
             //}
    
         }
         fclose(fp);
    
    }
    
    int main()
    
    {
         //FILE *fp;
    
         int i;
    
         printf("please enter student's number,name,age and address.\n");
    
         for(i=0;i<SIZE;i++)
    
         {
             printf("Input student %d:",i+1);
    
             scanf("%d%s%d%s",&stu[i].num,stu[i].name,&stu[i].age,stu[i].address);
    
         }
    
         fsave();
         
         return 0;
    
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 MATLAB四叉树处理长方形tif文件
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了