用二进制方式向文件读写一组数据

embedded/2024/12/28 17:21:08/

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

#include<stdio.h>
struct Student{char name[20];int number;int age;
};
int main(){int i;struct Student stu;FILE *fp;fp = fopen("1.txt","wb");if(fp == NULL){printf("文件不存在!");return -1;}for(i=0;i<10;i++){scanf("%s %d %d",stu.name,&stu.number,&stu.age);fwrite(&stu,sizeof(stu),1,fp);}return 0;
}

输入: 

刘一 1001 18
陈二 1002 19
张三 1003 20
李四 1004 30
王五 1005 40
赵六 1006 41
孙七 1007 23
周八 1008 25
吴九 1009 27
郑十 1010 28

从1.txt文件中读入数据,然后在屏幕上输出。

第一种:数据读入到结构体

int main(){struct Student stu;FILE *fp;int i;fp = fopen("1.txt","rb");if(fp == NULL){printf("文件不存在!");return -1;}for(i=0;i<10;i++){fread(&stu,sizeof(stu),1,fp);printf("%s %d %d\n",stu.name,stu.number,stu.age);}return 0;
}

第二种:数据读入到结构体数组中

int main(){struct Student stus[10];FILE *fp;int i;fp = fopen("1.txt","rb");if(fp == NULL){printf("文件不存在!");return -1;}fread(stus,sizeof(struct Student),10,fp);for(i=0;i<10;i++){printf("%s %d %d\n",stus[i].name,stus[i].number,stus[i].age);}return 0;
}

【例10.6】在磁盘文件上存有10个学生的数据。要求将第1,3,5,7,9个学生数据输入计算机,并在屏幕上显示出来。

int main(){struct Student stus[10];int i;FILE *fp;fp = fopen("1.txt","rb");if(fp == NULL){printf("文件不存在!");return -1;}for(i=0;i<5;i++){fread(&stus[i],sizeof(struct Student),1,fp);	fseek(fp,sizeof(struct Student),SEEK_CUR);}for(i=0;i<5;i++){printf("%s %d %d\n",stus[i].name,stus[i].number,stus[i].age);}return 0;
}


http://www.ppmy.cn/embedded/148533.html

相关文章

【Linux系列】Shell 命令:`echo ““ > img.sh`及其应用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

2.4 设备管理

文章目录 设备管理概述设备管理技术磁盘调度 设备管理概述 设备管理是操作系统中最繁杂、与硬件关系紧密的部分。 设备可以按照数据组织、资源分配、数据传输率分类。 数据组织&#xff1a;分为块设备&#xff08;ex. 磁盘&#xff09;、字符设备(ex. 打印机)。资源分配&#…

精准提升:从94.5%到99.4%——目标检测调优全纪录

&#x1f680; 目标检测模型调优过程记录 在进行目标检测模型的训练过程中&#xff0c;我们面对了许多挑战与迭代。从初始模型的训练结果到最终的调优优化&#xff0c;每一步的实验和调整都有其独特的思路和收获。本文记录了我在优化目标检测模型的过程中进行的几次尝试&#…

List直接使用removeAll报错

List直接使用removeAll报错 需要先将list转换才能使用 原因是&#xff1a; removeAll 方法在 Java 中用于从当前列表中删除另一个列表中存在的所有元素。如果直接对 List 接口的一个实现使用 removeAll 方法抛出异常&#xff0c;可能的原因有&#xff1a; 不同的List实现&am…

攻防世界 web view_source

开启场景 右键用不了就 F12 试试&#xff0c;然后看见了 flag cyberpeace{62caa734bc21cc4f9dc97ece9a882cd3}

Docker 镜像加速和配置的分享 云服务器搭建beef-xss

前言 最近很多的docker镜像加速都鸡鸡了 找点资源是越来越不容易了 什么事docker 因为我是个业余的人 我简单的说 docker就是比如我们的软件商店的 下载 docker镜像&#xff08;之前就是我们在服务器上搭建网站 和环境的很费力费时 之后就有了这个 镜像 &#xff1a;这…

电气设计 | 低压接地系统:TN-C 、TN-S、TN-C-S、TT适用哪些场所?

电气设计 | 低压接地系统&#xff1a;TN-C 、TN-S、TN-C-S、TT适用哪些场所&#xff1f; 1、低压配电系统简介2、各种低压配电系统介绍2.1、TN-C系统2.2、TN-S系统2.3、TN-C-S 系统2.4、TT 系统2.5、IT 系统 1、低压配电系统简介 低压配电系统有TN-C、TN-S、TN-C-S、TT和IT五种…

解析CGI(通用网关接口)技术

在互联网技术飞速发展的今天&#xff0c;CGI&#xff08;Common Gateway Interface&#xff0c;通用网关接口&#xff09;作为一种常见的服务器端脚本技术&#xff0c;依然在许多老旧网站和小型网站中广泛使用。尽管如今有许多更现代的技术替代了CGI&#xff0c;但它仍然是理解…