C语言:添加和显示,数据保存在文件中,下次打开可以获取之前录入的内容
方法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语言:添加和显示,数据保存在文件中,下次打开可以获取之前录入的内容相关推荐
- 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中
by Praveen Dubey 通过Praveen Dubey 如何使用浏览器控制台通过JavaScript抓取并将数据保存在文件中 (How to use the browser console ...
- AndroidStudio中利用openFileOutput将数据保存在文件中,利用openFileInput读取文件中的数据
一.要实现的功能 将输入框中的数据保存到指定文件名的文件中,实现数据的持久化:如果数据已经保存了,活动下次再启动的时候,就将保存在文件中的数据读取出来,显示在输入框中. 二.基本知识 利用活动生命周期 ...
- 用MATLAB将矩阵数据写入txt文件中,打开乱码原因
MATLAB将数据写入txt文件中乱码的原因,是将数据按照二进制文件写入txt文件,所以打开会出现乱码的情况,只需要把 fid1=fopen('piture.txt','w'); 换成,就可以了 fi ...
- python计算运动会某个参赛选手的得分。数据保存在文件中_为什么一定要考计算机二级证书?8个好处,考和没考区别有点大...
戳上面的蓝字关注我们哦! 商务合作加V/QQ:55838408 在众多考试中,全国计算机等级考试可以说是相对热门也最基础的考试.然而就是这最基础的考试,很多人都还没有通过.关于计算机等级考试,你又知道 ...
- python计算运动会某个参赛选手的得分。数据保存在文件中_Python基础教程之第二章---变量和字符串(1) 搬运...
Python变量及其使用 无论使用什么语言编程,其最终目的都是对数据进行处理.程序在编程过程中,为了处理数据更加方便,通常会将其存储在变量中. 形象地看,变量就像一个个小容器,用于"盛装&q ...
- 将数据写入文件C语言fwrite,fwrite -- 将数据写入到文件中
fwrite函数文档 函数概要: fwrite 函数用于将指定尺寸的数据写入到指定的文件中. 函数原型: #include ... size_t fwrite(const void *ptr, siz ...
- python计算运动会某个参赛选手的得分。数据保存在文件中_成绩计算电脑程序的使用说明...
成绩计算电脑程序的使用说明 为了计算成绩,特制作这个电脑程序,说明如下: 一.开发软件:Python 二.使用说明: 在电脑D盘根目录下建立两个excel文件,一个是1.xlsx,另一个是2.xlsx ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...
- php将数据保存为txt文件,PHP将数据存到txt文件中并显示
这篇文章主要介绍了PHP将数据存到txt文件中并显示,并获取其内容显示的实现代码,需要的朋友可以参考下. 这里的数据可以为基本数据类型,数组,对象等. 在存储的时候可以用serialize进行序列化, ...
最新文章
- pycharm+PyQt5+python最新开发环境配置,踩坑过程详解
- ubuntu 12 JDK 编译
- opencv resize (C/C++/Python)
- python 做个创越火线挂_一日一技:用Python做个能挂墙上的大钟表
- cent 8.0 安装tomcat 9.0_Linux服务器:安装tomcat并部署war应用
- 各linux版本比较
- 【渝粤题库】广东开放大学 现代服务学概论 形成性考核 (2)
- 《MySQL 8.0.22执行器源码分析(3.2)关于HashJoinIterator》
- 笨方法python_笨方法学习Python(11-20)
- JDK JRE 区别
- 有弹性的 net/http 服务
- 固态函数不正确_固态硬盘可靠吗?
- 「leetcode」617. 合并二叉树:【三种递归】【一种迭代】详解
- 转录组-蛋白组-代谢组关联分析
- Python流程控制
- ppurl 下载电子书
- 光学遥感影像的几何校正
- 快讯 | Elon Musk拟跨界做喜剧,号称要建立跨星系传媒帝国Thud!(轰!)
- 中文检索式问答机器人模型
- 刘启轩-毫米波雷达的特性及应用
热门文章
- 数学建模:种群竞争模型
- Chrome开发者工具详解-Network面板
- 保护视力台灯是白光还是暖光?盘点专业护眼的暖光护眼台灯
- hadoop +hbase+zookeeper 伪分布安装(超级无敌详细)
- 006.尚学堂阶段1_简单错误如何处理_守破离学习法_程序员修炼手册
- 原来win10有免费的文字语音朗读功能,配音再不愁了
- 解决zabbix启动报错
- oracle 有ods吗,Oracle pl/sql解析openoffice ods文檔
- 作业:摄氏度转化为华摄氏度
- .net core 3.1精伦身份证读卡器IDR210-2(部标版)二次开发