#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define size 3

struct employee

{  char name[6];                           //姓名

char num[8];                            //编号

char sex[2];                           //性别

int age;                                //年龄

char addr[10];                          //地址

int money;                             //工资

char health[4];                         //身体健康程度

char cul[4];                           //文化程度

}emp[size];                                               //employee结构体

struct employee_type

{  char name[6];

int money;

}empl[size];                                              //employee_type结构体

void save()                                                             //存储职工的全部信息

{  FILE *fp;

int i;

printf("Please enter data of employee:\n");

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

scanf("%s%s%s%d%s%d%s%s",emp[i].name,emp[i].num,emp[i].sex,&emp[i].age,emp[i].addr,&emp[i].money,emp[i].health,emp[i].cul);

if((fp=fopen("employee.dat","wb"))==NULL)  {   printf("can't open file!\n");   exit(0);  }

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

if(fwrite(&emp[i],sizeof(struct employee),1,fp)!=1)         //从emp[i]地址开始的数据给fp文件

printf("file write error!\n");

fclose(fp); }

void duchu()                                                           //读出职工的全部信息

{  FILE *fp;  int i;  printf("显示职工信息:\n");

if((fp=fopen("employee.dat","rb"))==NULL)

{   printf("can't open file!\n");   exit(0);  }

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

{   fread(&emp[i],sizeof(struct employee),1,fp);                 //把存放文件fp的地址给emp[i]

printf("%-5s %-5s %-5s %-5d %-5s %-5d %-5s %-5s\n",emp[i].name,emp[i].num,emp[i].sex,emp[i].age,emp[i].addr,emp[i].money,emp[i].health,emp[i].cul);  }  fclose(fp); }

void chouqu()                                                   //抽取职工的name及money

{  FILE *fp,*in;  int i;

if((fp=fopen("employee.dat","rb"))==NULL)                     //以只读的方式打开文件

{   printf("can't open file!\n");   exit(0);  }

if((in=fopen("employee_type.dat","wb"))==NULL)          //以只读的方式打开文件

{   printf("can't open file!\n");   exit(0);  }

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

{   fread(&emp[i],sizeof(struct employee),1,fp);

strcpy(empl[i].name,emp[i].name);

empl[i].money=emp[i].money;

if(fwrite(&empl[i],sizeof(struct employee_type),1,in)!=1)            //从empl[i]的地址开始的数据给in文件

printf("file write error!\n");  }  fclose(fp);  fclose(in); }

void duchu2()                                                                   //读出抽取出来的信息

{  FILE *in;  int i;  printf("显示信息:\n");

if((in=fopen("employee_type.dat","rb"))==NULL)                                //以只读的方式打开文件

{   printf("can't open file!\n");   exit(0);  }

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

{   fread(&empl[i],sizeof(struct employee_type),1,in);                  //把文件in内的数据地址给empl[i]

printf("%-5s %-5d\n",empl[i].name,empl[i].money);  }  fclose(in); }

int main()

{  //save();  chouqu();  duchu();  duchu2();  return 0; }

转载于:https://www.cnblogs.com/hupolinglong/articles/employee.html

职工信息存入文件employee,再抽取部分信息存入另一个文件employee_type相关推荐

  1. python读写文件详解,将数据写入一个文件或读一个文件写入另一个文件中。

    目录 实践一:读取文件并打印,read() 实践二:读取文件的一行并打印,readline() 实践三:读取文件的所有行存入到一个列表中并打印,readlines() 实践四:向文件中写入字符串,wr ...

  2. 将文件夹内多个子文件里的Excel数据合并到一个文件,保存为CSV格式

    将文件夹内多个子文件里的Excel数据合并到一个文件,保存为CSV格式 使用条件: Excel文件必须是xlsx格式,且数据结构一致,方可用以下代码. # 第一步 导入模块 import pandas ...

  3. linux shell 文件空,linux shell编程 如何判断一个文件是否为空

    shell 判断文件/目录是否为空 jfkidear144932015-01-15 shell中如何判断一个变量是否为空 l_nan365492014-07-14 在shell中如何判断一个变量是否为 ...

  4. (获取qq群成员信息,并下载头像,每个群保存一个文件夹)

    # 1.获取到自己qq里面所有的群,并且保存每个群里面的群成员信息到mongodb里面# 下载每个群的群成员的头像# 1.抓包,抓到获取自己所有qq群的接口 requests模块 https://qu ...

  5. java命令 jar文件夹_java中jar命令打包一个文件夹下的所有文件

    (1)首先,必须保证java的所有路径都设置好,在dos提示符下输入jar -help 出现C:\Documents and Settings\dly>jar -help 非法选项:h 用法:j ...

  6. linux下如何搜索某个文件,技术|如何在 Linux 中查找一个文件

    对于新手而言,在 Linux 中使用命令行可能会非常不方便.没有图形界面,很难在不同文件夹间浏览,找到需要的文件.本篇教程中,我会展示如何在 Linux 中查找特定的文件. 第一步要做的是find 命 ...

  7. 查找目录下的及子目录下的 所有的给定后缀名的文件并将其路径打印到一个文件中。

    package FileDemo;import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; impo ...

  8. 如何在WPS一个文件中以链接形式插入另外一个文件?WPS文档插入经验分享

    1.打开WPS软件,打开原文件A 2.点击文件上方WPS插入选项,点击对象,弹出"插入对象"对话框 3.先点击由文件创建,再点击浏览选择需要插入的文件 4.点击需要插入的文件,再点 ...

  9. 文件管理软件,将文件按名称归类移动到另一个文件夹中

    怎么管理文件,比如说将多个文件快速移动到另一个文件夹之中,该如何实现呢?今天小编给大家分享一个新的技巧,下面一起来试试吧. 所需工具 文件素材若干 操作步骤 运行[文件批量改名高手],在"文 ...

最新文章

  1. JS笔记(一):声明提升
  2. Scrapy框架items数据建模、翻页请求、requests对象请求、meta参数的使用
  3. OpenAI雄心勃勃的机器人计划失败了:强化学习没法用?
  4. badboy 2.2.5 安装包
  5. Vue v-if与v-show的区别
  6. IE内置的WebBrowser控件之--WEB打印
  7. 可以获得索引值码_搜索引擎优化最适合什么样子的工作?
  8. 《童梦奇缘-梦幻般的羁绊》第一章-朦胧
  9. [HAOI2015]树上染色(树形背包)
  10. 微博多尺度序列推荐算法实践
  11. 用C#绘图实现动画出现卡屏(运行慢)问题的解决办法
  12. Altium Designer使用-----LOGO脚本的使用
  13. kettle下载百度网盘地址含入门教程8(定时任务调度)
  14. node爬取守望先锋图片
  15. html网页运行环境,网站运行的环境要求
  16. MIT6.824-lab3AB-2022(万字推导思路及代码构建)
  17. laravel 验证手机号
  18. 2023前端vue高频面试题
  19. res.data, res.data.data, res.data.data.rows的含义
  20. Qml自定义等待指示器

热门文章

  1. 江苏2021年计算机二级报名时间,江苏3月计算机二级考试报名时间安排
  2. linux下安装安装pcre-8.32 configure: error: You need a C++ compiler for C++ support
  3. python双星号什么运算_Python3基础 双星号 求一个数的几次幂
  4. Stream流使用详解
  5. 攻防演练-组织沙盘推演的4个阶段.
  6. MyBatis官方文档-Java API
  7. python写完后打不开门_你的解锁方式为什么打不开门?
  8. MFC C++知道当前日期,求昨天或前天的日期
  9. Oracle VM VirtualBox 解决 “不能为虚拟电脑 打开一个新任务”
  10. 一篇博客带你熟悉Eclipse、AndroidStudio下搭建NDK环境(内有Demo)