方法1:fgets和fputs

#include <stdio.h>
#include<sys/ioctl.h>int main(int argc, char const *argv[])
{FILE *fp=fopen("1.txt","a+");              //1.txt  文件名和路径     当运行 .c 文件和目标文件 1.txt在同一目录时可直接写文件名//"a+"     表示1.txt  可读写,写的时候在文件末尾开始写                           if(!fp)                                   {perror("fopen");return 0;}while(1){printf("请输入操作:1添加  2显示  0退出  ");int num;while(scanf("%d",&num) != 1){printf("输入错误!!请重新输入  ");scanf("%*[^\n]");scanf("%*c");}scanf("%*[^\n]");                //清除输入缓存scanf("%*c");if(num==1)                                      //添加{printf("姓名 ID 年龄 薪资\n");char a[100];fgets(a,20,stdin);fputs(a,fp);}else if(num==2)                                 //显示全部{char ch[100]={};fclose(fp);                       //关闭清除,FILE *fp=fopen("1.txt","a+");       //再从新打开if(!fp){perror("fopen");return 0;}printf("姓名    ID      年龄      薪资\n");while(1){if(fgets(ch,10,fp)==NULL)         //判断{if(feof(fp))                 //判断是否到文件尾break;}fputs(ch,stdout);}}else if(num==0)              //关闭退出{fclose(fp);return 0;}} return 0;
}

方法2:fread和fwrite

小瑕疵:存储在emp.dat文件中的数据用电脑打开

打开可能会乱码,这是因为程序保存是用ascii编码保存的

方法1不会出现这种情况

#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef struct{char name[20];int id;int age;float salary;
}emp;void add_emp()
{emp ep;FILE *fp = fopen("emp.dat","a");         //"emp.dat"  文件名   "a"可写,在文件末尾写if(!fp){                                 //判断文件是否fopen成功perror("fopen");exit(0);}printf("请输入员工姓名:");fgets(ep.name,20,stdin);while(strlen(ep.name)==19&&ep.name[18]!='\n'){printf("输入的名字过长,请重新输入:");scanf("%*[^\n]");scanf("%*c");fgets(ep.name,20,stdin);}ep.name[strlen(ep.name)-1] = '\0';//去掉最后的换行符printf("请输入员工编号:");scanf("%d",&ep.id);printf("请输入员工年龄:");scanf("%d",&ep.age);printf("请输入员工工资:");scanf("%g",&ep.salary);//将信息写入文件fwrite(&ep,sizeof(emp),1,fp);fclose(fp);
}void display_emp()
{emp ep;FILE *fp = fopen("emp.dat","r");if(!fp){perror("fopen");exit(0);}printf("员工姓名\t员工编号\t员工年龄\t工资\n");while(fread(&ep,sizeof(emp),1,fp)){printf("%s\t\t%d\t\t%d\t\t%g\n",ep.name,ep.id,ep.age,ep.salary);}fclose(fp);
}int main()
{int choice = 0;while(1){printf("1.添加人员\n");printf("2.显示人员\n");printf("3.退出\n\n");printf("请选择:");while(scanf("%d",&choice)!=1){printf("输入错误,请重新输入:");scanf("%*[^\n]");scanf("%*c");}scanf("%*[^\n]");scanf("%*c");switch(choice){case 1://printf("添加人员!\n");add_emp();break;case 2://printf("显示所有人员!\n");display_emp();break;case 3:exit(0);break;default:printf("选择选项不存在,请重新选择\n");}getchar();}return 0;
}

C语言:添加和显示,数据保存在文件中,下次打开可以获取之前录入的内容相关推荐

  1. 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中

    by Praveen Dubey 通过Praveen Dubey 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中 (How to use the browser console ...

  2. AndroidStudio中利用openFileOutput将数据保存在文件中,利用openFileInput读取文件中的数据

    一.要实现的功能 将输入框中的数据保存到指定文件名的文件中,实现数据的持久化:如果数据已经保存了,活动下次再启动的时候,就将保存在文件中的数据读取出来,显示在输入框中. 二.基本知识 利用活动生命周期 ...

  3. 用MATLAB将矩阵数据写入txt文件中,打开乱码原因

    MATLAB将数据写入txt文件中乱码的原因,是将数据按照二进制文件写入txt文件,所以打开会出现乱码的情况,只需要把 fid1=fopen('piture.txt','w'); 换成,就可以了 fi ...

  4. python计算运动会某个参赛选手的得分。数据保存在文件中_为什么一定要考计算机二级证书?8个好处,考和没考区别有点大...

    戳上面的蓝字关注我们哦! 商务合作加V/QQ:55838408 在众多考试中,全国计算机等级考试可以说是相对热门也最基础的考试.然而就是这最基础的考试,很多人都还没有通过.关于计算机等级考试,你又知道 ...

  5. python计算运动会某个参赛选手的得分。数据保存在文件中_Python基础教程之第二章---变量和字符串(1) 搬运...

    Python变量及其使用 无论使用什么语言编程,其最终目的都是对数据进行处理.程序在编程过程中,为了处理数据更加方便,通常会将其存储在变量中. 形象地看,变量就像一个个小容器,用于"盛装&q ...

  6. 将数据写入文件C语言fwrite,fwrite -- 将数据写入到文件中

    fwrite函数文档 函数概要: fwrite 函数用于将指定尺寸的数据写入到指定的文件中. 函数原型: #include ... size_t fwrite(const void *ptr, siz ...

  7. python计算运动会某个参赛选手的得分。数据保存在文件中_成绩计算电脑程序的使用说明...

    成绩计算电脑程序的使用说明 为了计算成绩,特制作这个电脑程序,说明如下: 一.开发软件:Python 二.使用说明: 在电脑D盘根目录下建立两个excel文件,一个是1.xlsx,另一个是2.xlsx ...

  8. C# 将List中的数据导入csv文件中

    //http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...

  9. php将数据保存为txt文件,PHP将数据存到txt文件中并显示

    这篇文章主要介绍了PHP将数据存到txt文件中并显示,并获取其内容显示的实现代码,需要的朋友可以参考下. 这里的数据可以为基本数据类型,数组,对象等. 在存储的时候可以用serialize进行序列化, ...

最新文章

  1. pycharm+PyQt5+python最新开发环境配置,踩坑过程详解
  2. ubuntu 12 JDK 编译
  3. opencv resize (C/C++/Python)
  4. python 做个创越火线挂_一日一技:用Python做个能挂墙上的大钟表
  5. cent 8.0 安装tomcat 9.0_Linux服务器:安装tomcat并部署war应用
  6. 各linux版本比较
  7. 【渝粤题库】广东开放大学 现代服务学概论 形成性考核 (2)
  8. 《MySQL 8.0.22执行器源码分析(3.2)关于HashJoinIterator》
  9. 笨方法python_笨方法学习Python(11-20)
  10. JDK JRE 区别
  11. 有弹性的 net/http 服务
  12. 固态函数不正确_固态硬盘可靠吗?
  13. 「leetcode」617. 合并二叉树:【三种递归】【一种迭代】详解
  14. 转录组-蛋白组-代谢组关联分析
  15. Python流程控制
  16. ppurl 下载电子书
  17. 光学遥感影像的几何校正
  18. 快讯 | Elon Musk拟跨界做喜剧,号称要建立跨星系传媒帝国Thud!(轰!)
  19. 中文检索式问答机器人模型
  20. 刘启轩-毫米波雷达的特性及应用

热门文章

  1. 数学建模:种群竞争模型
  2. Chrome开发者工具详解-Network面板
  3. 保护视力台灯是白光还是暖光?盘点专业护眼的暖光护眼台灯
  4. hadoop +hbase+zookeeper 伪分布安装(超级无敌详细)
  5. 006.尚学堂阶段1_简单错误如何处理_守破离学习法_程序员修炼手册
  6. 原来win10有免费的文字语音朗读功能,配音再不愁了
  7. 解决zabbix启动报错
  8. oracle 有ods吗,Oracle pl/sql解析openoffice ods文檔
  9. 作业:摄氏度转化为华摄氏度
  10. .net core 3.1精伦身份证读卡器IDR210-2(部标版)二次开发