【例10.4】从键盘输入10个学生的有关数据,然后把它们转存到磁盘文件上去。并验证stu.dat是否已存在此数据(再编写一个程序从stu.dat文件中读入数据,然后在屏幕上输出)

例10.4把10个学生数据读入到磁盘里:

#include<stdio.h>#define SIZE 10struct Student_type
{char name[10];int num;int age;char addr[15];
}stud[SIZE];void save()
{FILE *fp;int i;if((fp=fopen("stu.dat","wb"))==NULL){printf("cannot open file\n");return; }for(i=0;i<SIZE;i++){if(fwrite(&stud[i],sizeof(struct Student_type),1,fp)!=1)printf("file write error!\n");}fclose(fp);
}int main()
{int i;printf("Please enter data of students:\n");for(i=0;i<SIZE;i++){scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);}save();return 0;
}

在VS2019下,需将源文件的fopen和scanf做些修改:

#include<stdio.h>#define SIZE 10struct Student_type
{char name[10];int num;int age;char addr[15];
}stud[SIZE];void save()
{FILE* fp;int i;fopen_s(&fp, "stu.dat", "wb");if (fp == NULL){printf("cannot open file\n");return;}for (i = 0; i < SIZE; i++){if (fwrite(&stud[i], sizeof(struct Student_type), 1, fp) != 1)printf("file write error!\n");}fclose(fp);
}int main()
{int i;printf("Please enter data of students:\n");for (i = 0; i < SIZE; i++){scanf_s("%s%d%d%s", stud[i].name, (unsigned int)sizeof(stud[i].name), &stud[i].num, &stud[i].age, stud[i].addr, (unsigned int)sizeof(stud[i].addr));}save();return 0;
}

例10.4把10个学生数据从磁盘文件读入,并在屏幕上输出:

#include<stdio.h>
#include<stdlib.h>
#define SIZE 10struct Student_type
{char name[10];int num;int age;char addr[15];
}stud[SIZE];int main()
{int i;FILE *fp;if((fp=fopen("stu.dat","rb"))==NULL){printf("cannot open file\n");exit(0);}for(i=0;i<SIZE;i++){fread(&stud[i],sizeof(struct Student_type),1,fp);printf("%-10s %4d %4d %-15s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);}fclose(fp);return 0;
}

在VS2019下,需将源文件的fopen做些修改:

#include<stdio.h>
#include<stdlib.h>
#define SIZE 10struct Student_type
{char name[10];int num;int age;char addr[15];
}stud[SIZE];int main()
{int i;FILE* fp;fopen_s(&fp, "stu.dat", "rb");if (fp==NULL){printf("cannot open file\n");exit(0);}for (i = 0; i < SIZE; i++){fread(&stud[i], sizeof(struct Student_type), 1, fp);printf("%-10s %4d %4d %-15s\n", stud[i].name, stud[i].num, stud[i].age, stud[i].addr);}fclose(fp);return 0;
}

【例10.4】从键盘输入10个学生的有关数据,然后把它们转存到磁盘文件上去。相关推荐

  1. 从键盘输入4个学生的有关数据,然后把它们保存到磁盘文件中,最后从磁盘文件中读取数据输出到屏幕...

    练习fwrite()和fread()函数的使用 方法. fwrite()函数的作用是将一个长度为29字节的数据块送到文件中(一个student_type类型结构体变量的长度为它的成员长度之和,即10+ ...

  2. PTA 最大和最小 (10 分)请使用指针法(间接访问)编写程序,程序的功能是从键盘输入 10 个数,求其最大值和最小值的差。

    请使用指针法(间接访问)编写程序,程序的功能是从键盘输入 10 个数,求其最大值和最小值的差. 输入格式: 输入10个整数 输出格式: 无 输入样例: 1 2 3 4 5 6 7 8 9 10 输出样 ...

  3. C语言:有十个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)

    题目:有十个学生,每个学生的数据包括学号.姓名.3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程的总平均成绩,以及最高分的学生的数据(包括学号.姓名.3门课程成绩.平均分数). 根据题目要求 ...

  4. 从键盘输入10个学生的姓名,再从键盘输入一个姓名,查找这个姓名是否在前面输入的10个姓名之中。

    [问题描述] 从键盘输入10个学生的姓名,再从键盘输入一个姓名,查找这个姓名是否在前面输入的10个姓名之中. [输入形式] lst=["范兴贵","吴帅飞",& ...

  5. 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换。

    题目: /* 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换. */ 代码: c++做的. #include<iostream> using names ...

  6. c语言学习-从键盘输入10个字符,按照字典顺序将其排序输出(二维字符数组)

    从键盘输入10个字符,按照字典顺序将其排序输出(二维字符数组) 程序流程图: 代码: #include<stdio.h> void main() {int b[10]; int a[5][ ...

  7. C语言:从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩

    /*从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩*/ #include <stdio.h> int main(){int i,n=1;float max,grade[1 ...

  8. c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:C语言中,从键盘输入10个数,从小到大排列输出,怎么写啊,最好注回答:#includestdio.h void swap(int * ...

  9. 28.从键盘输入10个正负相间的整数,输出个位数是奇数.十位数是偶数的所有数

    28.从键盘输入10个正负相间的整数,输出个位数是奇数.十位数是偶数的所有数 //28.从键盘输入10个正负相间的整数,输出个位数是奇数.十位数是偶数的所有数 #include<stdio.h& ...

最新文章

  1. Xcode中通过删除原先版本的程序来复位App
  2. 用c语言运行程序的优点,C语言学习与总结---第一章:C语言概述
  3. c++和opengl实现gis_从零开始的图形学学习(零):一切的开始 —— 自建OpenGL开发框架
  4. linux lvm管理实例,Linux系统管理之LVM案例
  5. windows7系统内存占用过高的解决方法
  6. Bash-Script
  7. 免费分享一套详细的Hadoop学习视频
  8. 数学基础修炼手册-数学分析-凸优化
  9. 如何设置电脑减少服务器响应时间,电脑反应慢,软件响应时间长原因分析和解决办法...
  10. JS设置cookie,获取cookie
  11. Ubuntu下出现授权问题
  12. JSP基础教程-初时index首页
  13. 智维专业工程师告诉你,哪款Kvaser多通道CAN总线分析仪性价比最高?
  14. TIT 计算机图形学 实验一 十二面体线框模型
  15. 微信小程序个人服务器搭建
  16. MATLAB程序中常见的语法错误,Matlab常见语法错误及解决方法
  17. The kernel appears to have died. It will restart automatically
  18. 【性能定位】使用jstack定位线程堆栈信息
  19. CREATE DATABASE guestbook DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  20. SAP中采购订单关于收货和发票三种不同控制情况的分析

热门文章

  1. 大象做梦传媒2022企业公司创意年会邀请函范文
  2. ChatGPT帮我写了个方案
  3. Android APP Camera2应用(03)拍照保存照片流程
  4. QQ之父马化腾之成功秘籍
  5. 带地址参数的长链接转换成短链接分享
  6. 计算机专业的校本教材,计算机专业校本教材编方案(新)
  7. 《操作系统真象还原》读书笔记 第3章
  8. forceUpdate是什么
  9. JAVA编程调优全集-性能设计沉思录(12)
  10. Java - 在进行数据库编程时,连接池有什么作用?