写一个员工的基本信息,写入一个employee文件中,然后提取其中的员工的名字和收入写入另一个简单文件中

2024-02-15 10:38

本文主要是介绍写一个员工的基本信息,写入一个employee文件中,然后提取其中的员工的名字和收入写入另一个简单文件中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#define M 10
#define N 3
struct T
{char name[M];char num[M];char sex;int age;char add[M];float comes;char lev[M];char hea[M];//健康状况}s[N];//假设就三个职工把struct U{char name[10];float comes;}t[N];void save()
{FILE *fp,*p;int i;if((fp=fopen("employee.txt","wb"))==NULL){printf("error");exit(0);}for(i=0;i<N;i++){if((fwrite(&s[i],sizeof(struct T),1,fp))!=1)  //把输入的职工数据写入文件中printf("file write error");}rewind(fp);//指针重新指向一下//打开这个文件if((fp=fopen("employee.txt","rb"))==NULL){printf("error");exit(0);}for(i=0;i<N;i++){if((fread(&s[i],sizeof(struct T),1,fp))!=1)  //把输入的职工数据写入文件中printf("file write error");printf("%-4s %4s %2c %4d %4s %4f %4s %4s\n",s[i].name,s[i].num,s[i].sex,s[i].age,s[i].add,s[i].comes,s[i].lev,s[i].hea);strcpy(t[i].name,s[i].name);//把员工的名字和收入房子另一个结构体数组中保存起来t[i].comes=s[i].comes;}if((p=fopen("empty.txt","wb"))==NULL){printf("error");exit(0);}for(i=0;i<N;i++){if((fwrite(&t[i],sizeof(struct U),1,p))!=1)  //把输入的职工数据写入文件中printf("file write error");}rewind(p);//指针重新指向一下//打开这个文件if((p=fopen("empty.txt","rb"))==NULL){printf("error");exit(0);}for(i=0;i<N;i++){if((fread(&t[i],sizeof(struct U),1,p))!=1)  //把输入的职工数据写入文件中printf("file write error");printf("%-5s %4f\n",t[i].name,t[i].comes);}fclose(fp);fclose(p);
}int main()
{//输入数据;int i;printf("请输入职工的姓名,职工号,性别,年龄,地址,收入,文化水平,健康状态:\n");for(i=0;i<N;i++){scanf("%s %s %c %d %s %f %s %s",s[i].name,s[i].num,&s[i].sex,&s[i].age,s[i].add,&s[i].comes,s[i].lev,s[i].hea);}save();//给写入employee文件中return 0;
}

代码的关键:在于员工姓名的复制,收入的复制。然后放到一个新定义的结构体变量中存储,最后把这个新的结构体变量写入文件中,再读取就可以。注意:先写入然后再读取操作。

这篇关于写一个员工的基本信息,写入一个employee文件中,然后提取其中的员工的名字和收入写入另一个简单文件中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711166

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹