【例10.4】从键盘输入10个学生的有关数据,然后把它们转存到磁盘文件上去。
【例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个学生的有关数据,然后把它们转存到磁盘文件上去。相关推荐
- 从键盘输入4个学生的有关数据,然后把它们保存到磁盘文件中,最后从磁盘文件中读取数据输出到屏幕...
练习fwrite()和fread()函数的使用 方法. fwrite()函数的作用是将一个长度为29字节的数据块送到文件中(一个student_type类型结构体变量的长度为它的成员长度之和,即10+ ...
- PTA 最大和最小 (10 分)请使用指针法(间接访问)编写程序,程序的功能是从键盘输入 10 个数,求其最大值和最小值的差。
请使用指针法(间接访问)编写程序,程序的功能是从键盘输入 10 个数,求其最大值和最小值的差. 输入格式: 输入10个整数 输出格式: 无 输入样例: 1 2 3 4 5 6 7 8 9 10 输出样 ...
- C语言:有十个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)
题目:有十个学生,每个学生的数据包括学号.姓名.3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程的总平均成绩,以及最高分的学生的数据(包括学号.姓名.3门课程成绩.平均分数). 根据题目要求 ...
- 从键盘输入10个学生的姓名,再从键盘输入一个姓名,查找这个姓名是否在前面输入的10个姓名之中。
[问题描述] 从键盘输入10个学生的姓名,再从键盘输入一个姓名,查找这个姓名是否在前面输入的10个姓名之中. [输入形式] lst=["范兴贵","吴帅飞",& ...
- 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换。
题目: /* 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换. */ 代码: c++做的. #include<iostream> using names ...
- c语言学习-从键盘输入10个字符,按照字典顺序将其排序输出(二维字符数组)
从键盘输入10个字符,按照字典顺序将其排序输出(二维字符数组) 程序流程图: 代码: #include<stdio.h> void main() {int b[10]; int a[5][ ...
- C语言:从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩
/*从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩*/ #include <stdio.h> int main(){int i,n=1;float max,grade[1 ...
- c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:C语言中,从键盘输入10个数,从小到大排列输出,怎么写啊,最好注回答:#includestdio.h void swap(int * ...
- 28.从键盘输入10个正负相间的整数,输出个位数是奇数.十位数是偶数的所有数
28.从键盘输入10个正负相间的整数,输出个位数是奇数.十位数是偶数的所有数 //28.从键盘输入10个正负相间的整数,输出个位数是奇数.十位数是偶数的所有数 #include<stdio.h& ...
最新文章
- Xcode中通过删除原先版本的程序来复位App
- 用c语言运行程序的优点,C语言学习与总结---第一章:C语言概述
- c++和opengl实现gis_从零开始的图形学学习(零):一切的开始 —— 自建OpenGL开发框架
- linux lvm管理实例,Linux系统管理之LVM案例
- windows7系统内存占用过高的解决方法
- Bash-Script
- 免费分享一套详细的Hadoop学习视频
- 数学基础修炼手册-数学分析-凸优化
- 如何设置电脑减少服务器响应时间,电脑反应慢,软件响应时间长原因分析和解决办法...
- JS设置cookie,获取cookie
- Ubuntu下出现授权问题
- JSP基础教程-初时index首页
- 智维专业工程师告诉你,哪款Kvaser多通道CAN总线分析仪性价比最高?
- TIT 计算机图形学 实验一 十二面体线框模型
- 微信小程序个人服务器搭建
- MATLAB程序中常见的语法错误,Matlab常见语法错误及解决方法
- The kernel appears to have died. It will restart automatically
- 【性能定位】使用jstack定位线程堆栈信息
- CREATE DATABASE guestbook DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- SAP中采购订单关于收货和发票三种不同控制情况的分析