1.从键盘输入一个字符串,将其中的小写字母全部转化成大写字母,然后输出到一个磁盘文件test中保存.输入的字符以"!"结束

需要在代码规定的地方新建一个文件,我这里是在桌面新建的 test.txt

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>void main() {FILE *fp;char str[50];if (!(fp = fopen("C:\\Users\\winuser\\Desktop\\test.txt","w"))) {//打开文件并写入printf("打开文件失败!");}printf("输入一个字符串:\n");gets(&str);int len = strlen(str);int i = 0;while(str[i]!= '!') {if (str[i]>='a' && str[i]<='z') {str[i] = str[i] - 32;}fputc(str[i], fp);//将str数据写入文件i++;}fclose(fp);//写入完毕,关闭文件fp = fopen("C:\\Users\\winuser\\Desktop\\test.txt", "r");//打开文件并读取fgets(str, len+1, fp);//读取数据printf("%s\n", str);fclose(fp);//读取完毕,关闭文件
}


2.有两个磁盘文件"A"和"B",各存放一行字母,今要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件"C"中去.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>void main() {FILE *fpa;FILE *fpb;FILE *fpc;char stra[20],strb[20],str,strc[50],temp;int n;//在磁盘文件A中存放一行代码fpa = fopen("A","w");printf("请输入磁盘文件A的一行字母:\n");gets(&stra);fputs(stra,fpa);fclose(fpa);//在磁盘文件B中存放一行代码fpb = fopen("B", "w");printf("请输入磁盘文件B的一行字母:\n");gets(&strb);fputs(strb, fpb);fclose(fpa);//打开磁盘文件A进行读取int len = strlen(stra);fpa = fopen("A", "r");//打开磁盘文件B进行读取int len2 = strlen(strb);fpb = fopen("B", "r");//将两个文件信息合并int i;for (i = 0; (str = fgetc(fpa)) != EOF;i++) {//从fpa中一个一个读取,直到结束strc[i] = str;}int i2 = i;for (i2 = i; (str = fgetc(fpb)) != EOF; i++) {//在上个i的基础上就行读取strc[i] = str;}strc[i] = '\0';fclose(fpa);fclose(fpb);n = i;//将合并之后的字母进行排序for (int j = 0; j < n;j++) {for (int k = j + 1; k < n;k++) {if(strc[j]>strc[k]){temp = strc[j];strc[j] = strc[k];strc[k] = temp;}}}//将排好序的字母存放到磁盘C中fpc = fopen("C","w");fputs(strc, fpc);fclose(fpc);//将磁盘C的字母输出printf("\n输出磁盘C的数据:\n");fpc = fopen("C", "r");for (int i = 0; (str = fgetc(fpc)) != EOF; i++) {printf("%c", str);}fclose(fpc);
}

3.有5个学生,每个学生有3门课程的成绩,从键盘输入学生数据(包括学号、姓名、3门课程成绩),
计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件’stud’中.

#define _CRT_SECURE_NO_WARNINGS
#define N 5
#include <stdio.h>struct student
{int stuId;char name[10];float score[3];float average;
}stu[N];void main() {void input(struct student stu[]);void output(struct student stu[]);input(stu);output(stu);//存FILE *fp;fp = fopen("stud","w");for (int i = 0; i < N;i++) {if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1) {printf("文件写入失败...");}}fclose(fp);//验证 取fp = fopen("stud", "r");for (int i = 0; i < N;i++) {fread(&stu[i],sizeof(struct student),1,fp);printf("\n%d,%s,%5.2f,%5.2f,%5.2f,%5.2f\n",stu[i].stuId,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average);}
} void input(struct student stu[]){for (int i = 0; i < N;i++) {printf("请输入第 %d 个学生的数据:\n",i+1);printf("学号:");scanf("%d",&stu[i].stuId);printf("姓名:");scanf("%s",&stu[i].name);for (int j = 0; j < 3;j++) {printf("课程 %d:",j+1);scanf("%f",&stu[i].score[j]);}printf("\n");}
}void output(struct student stu[]) {printf("学号 姓名  课程1 课程2 课程3 平均分\n");printf("----------------------------------------------\n");float sum;for (int i = 0; i < N; i++) {printf("%d  ", stu[i].stuId);printf("%s   ", stu[i].name);sum = 0;for (int j = 0; j < 3; j++) {printf("%5.2f ", stu[i].score[j]);sum += stu[i].score[j];}stu[i].average = sum / 3;printf("%5.2f", stu[i].average);printf("\n");}
}

4.在上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sory”中.

#define _CRT_SECURE_NO_WARNINGS
#define N 5
#include <stdio.h>
#include <string.h>struct student
{int stuId;char name[10];float score[3];float average;
}stu[N],temp;void main() {FILE *fp;fp = fopen("stud", "r");for (int i = 0; i < N;i++) {fread(&stu[i],sizeof(struct student),1,fp);printf("\n%d,%s,%5.2f,%5.2f,%5.2f,%5.2f\n",stu[i].stuId,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average);}fclose(fp);//将排序后的数据存放到stu-sory中fp = fopen("stu-sory","w");//排序for (int i = 0; i < N; i++) {for (int j = i + 1; j < N; j++) {if (stu[i].average > stu[j].average) {temp = stu[i];stu[i] = stu[j];stu[j] = temp;}}}printf("\n排序之后的数据:\n");for (int i = 0; i < N;i++) {fwrite(&stu[i],sizeof(struct student),1,fp);printf("\n%d,%s,%5.2f,%5.2f,%5.2f,%5.2f\n", stu[i].stuId, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average);}fclose(fp);
} 

C语言之利用文件保存数据相关推荐

  1. C语言程序设计 利用文件保存数据

    1 C文件的有关概念 1.1 什么是文件 在进行C运用程序设计中,主要用到两种文件: (1)程序文件.包括程序文件(后缀为.c).目标文件(后缀为.obj).可执行文件(后缀为.exe)等,用来存放程 ...

  2. 利用文件保存数据(c语言)

    将数据储存到本地文件 环境:CentOS7 后附常用文件操作函数和功能表 文件后缀 .doc(Word文件)..txt(文本文件)..dat(数据文件)..c(C语言源程序文件)..cpp(C++源程 ...

  3. esp8266保存html文件,八,ESP8266 文件保存数据(基于Lua脚本语言)

    应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345.......不过要等一两个星期,先忙完朋友的事情 前面几篇 用AT指令版本的 用LUA语言的,更灵活,功能更强 ...

  4. esp8266保存html文件,八,ESP8266 文件保存数据

    应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345.......不过要等一两个星期,先忙完朋友的事情 前面几篇 用AT指令版本的 用LUA语言的,更灵活,功能更强 ...

  5. esp8266保存html文件,八,ESP8266 文件保存数据(示例代码)

    应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345.......不过要等一两个星期,先忙完朋友的事情 前面几篇 用AT指令版本的 用LUA语言的,更灵活,功能更强 ...

  6. 计算机基础(四):C语言字符串处理文件保存

    一.字符串函数 1.strstr(str1,str2)  用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. 2.char *st ...

  7. 【iOS开发-74】解决方式:Xcode6下利用preference保存数据,终于的plist文件在哪里?...

    (1)现象:普通情况下.储存数据以一个沙盒为单位,preference数据存在在沙盒路径下Library/Preferences里面,可是Xcode6里找来找去根本什么都没有. (2)原因:Xcode ...

  8. C语言做一个图书管理系统源码,使用txt文件保存数据

    我使用的IDE为 VS2022,仅实现对文件内容的的添加以及修改,一本书是否被删除,我这里是以图书的状态来划分,如果这本书的状态为删除,则不显示出来,但是存在文本里:并且我这里是退出程序才会进行修改文 ...

  9. 32利用文件系统保存数据_网易技术实践|Docker文件系统实战

    在本文中,我们来实战构建一个Docker镜像,然后实例化容器,在Docker的生命周期中详细分析一下Docker的文件存储情况和DockerFile优化策略. 在开始实战之前,我们先介绍一个概念,联合 ...

最新文章

  1. Ora-12154:无法解析连接字符串
  2. 最大似然估计的一个示例
  3. 机器学习算法加强——回归实践
  4. matlab子函数调用变量,matlab中,怎么样用function自定义函数调用另一个函数名为输入?...
  5. Connect 大会的主题 ---微软大法好
  6. 使用ActiveMQ和HornetQ通过WebSocket通过STOMP轻松进行消息传递
  7. 基于数据空间的电子病历数据融合与应用平台
  8. java接口自动化测试的搭建_java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)...
  9. SQLServer 2005新功能
  10. python的优点有哪些-python的优点和缺点是什么?
  11. 使用 New Relic 监控接口服务性能 (APM)
  12. QSqlTableModel模型使用详解
  13. 新申请了一个博客,这个博客主要用来记录编程学习笔记
  14. 蓝桥杯题目常用API (JAVA)
  15. 最新版计算机应用基础,计算机应用基础课件(最新版)
  16. 网络编程-在线英英词典项目
  17. 超实用的HTML 5接口全方位测试总结文
  18. 缓和曲线回头曲线交点法坐标计算实例
  19. 创客集结号:国内无人机技术发展的难点有哪些?
  20. node.js基于WebStorm服装购物网站的设计与实现毕业设计源码281444

热门文章

  1. 他是第一个因人脸识别错误被关监狱的人,证据仅仅是1张驾照照片
  2. 初级X编程(非常好的入门学习资料)
  3. Flutter开发IOS,上架AppStore的全部流程以及常遇到的坑
  4. 壹度同城新零售系统v4.1.23 社交电商 同城商城
  5. 公司中生存奥秘诙谐解说[ZT]
  6. Vue获取当前路由地址以及当前页面的地址
  7. 巧妙的通过二维码在手机和电脑传递小量数据
  8. Found duplicate code in xxx,Inspection info: Finds duplicated code
  9. linux如何查看cpu型号
  10. 【转帖】UDIMM、RDIMM、SODIMM以及LRDIMM的区别