/我是咕咕,哈哈哈。今天也有好好学/
实验七、文件程序设计(p121–p125)
一、实验目的
1、掌握文件的基本概念。
2、掌握文本文件的打开和关闭操作。
2、掌握文本文件的顺序读写方法。
二、实验内容
1、调试示例:
将字符写入文件:从键盘输入一行字符,写到文件a.txt中。
1.源程序:

#include<stdio.h>
#include<stdlib.h>
int main()
{FILE *fp;char ch[80];fp=fopen("a.txt","w+");scanf("%s",ch);fputs(ch,fp);fclose(fp);return 0;
}

2.调试例子:计算机1901谢威
3.结果如图:

2、基础编程题
(1).统计文本中各类字符串字符个数,分别统计一个文本文件中的字母,数字个数。
1.源程序:

#include<stdio.h>
#include<stdlib.h>
int main()
{FILE *fp;char ch[80],fchar;int num=0,word=0;fp=fopen("a.txt","r");fchar=fgetc(fp);while(!feof(fp)){if(fchar=='0'||fchar=='1'||fchar=='2'||fchar=='3'||fchar=='4'||fchar=='5'||fchar=='6'||fchar=='7'||fchar=='8'||fchar=='9'){printf("#%c\n",fchar);num++;}else{printf("!%c\n",fchar);word++;}fchar=fgetc(fp);}printf("num:%d\nword:%d",num,word);fclose(fp);return 0;
}

2.调试例子:abc123
3.结果如图:
(2).将实数写入文件:从键盘输入若干实数,分别写入一个文本文件中。
1.源程序:

#include<stdio.h>
#include<stdlib.h>
int main()
{FILE *fp;int fjoinnum;fp=fopen("a.txt","w+");while(1){scanf("%d",&fjoinnum);fputc(fjoinnum,fp);}fclose(fp);return 0;
}

2.调试例子:123456
3.结果如图:


(3).统计成绩:从键盘输入10个学生的学号,姓名和数学语文和英语成绩,自导文本文件f3.txt中,再从中取出数据,计算每个学生的总成绩和平均分,并将显示结果打到屏幕上。
1.源程序:

#include<stdio.h>
#include<stdlib.h>
typedef struct Student
{int num;char name[20];int Math;int Chinese;int English;float avnger;
}STU;
int main()
{int i=0;STU student[10];FILE *fp;fp=fopen("f3.txt","w+");for(i=0;i<10;i++){fwrite(&student[i],sizeof(STU),1,fp);student[i].avnger=(student[i].Math+student[i].Chinese+student[i].English)/3.0;}printf("These student grades:");for(i=0;i<10;i++){printf("%2d%6s%2f",student[i].num,student[i].name,student[i].avnger);}fclose(fp);return 0;
}  

2.调试例子:无
3.结果如图:无
/害,有bug看你们自己了我改半天没弄出来/
(4).比较俩个文本是否相等:比较俩个文本文件内容是否相等,并输出俩个文件中第一次不相同字符内容行号及列值。
1.源程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 80
int Finddifferent(char *str1,char *str2)
{int i=0;for (i = 0; str1[i]!=NULL&& str2[i]!=NULL; i++){if (str1[i]!=str2[i]){break;}}return i+1;
}
int main()
{FILE *fp1,*fp2;int n=1,f=0;char str1[N],str2[N];fp1=fopen("a.txt","r");fp2=fopen("b.txt","r");while (!feof(fp1)&&!feof(fp2)){fgets(str1,N,fp1);fgets(str2,N,fp2);if (strcmp(str1,str2)){printf("This %d row %d is diffderent\n",n,Finddifferent(str1,str2));f=1;}n++;fflush(fp1);fflush(fp2);}if(f==0){printf("Both are simple");}fclose(fp1);fclose(fp2);return 0;
}

2.调试例子:
123456a654123b
13456a654123b
3.结果如图:

(5).字母转换并统计换行数:读取一个指定的文本文档,显示在屏幕上,如果有大写字母,则改成小写字母并输出,并根据输出统计换行数。
1.源程序:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 80
void change(char *ch)
{int i=0;for(i=0;i<strlen(ch);i++){if(ch[i]<95)ch[i]=ch[i]+32;}printf("%s\n",ch);
}
int main()
{FILE *fp;char ch[N];long row=0;fp=fopen("a.txt","r");while(!feof(fp)){fgets(ch,N,fp);change(ch);row++;}printf("row:%ld\n",row);fclose(fp);return 0;
}

2.调试例子:
AbcDefj
HigklMn
3.结果如图:

3、改错题
将文件中的数据求和并写入文本文件尾:文件int data.dat中存放了若干整数,将文件中所有数相加,并把累加和写入文件的最后。
1.源程序:

#include <stdio.h>
int main(void)
{FILE *fp;int n,sum=0;if((fp=fopen("int_data.dat","a+"))==NULL){printf("Cant Open File!");exit(0);}while(fscanf(fp,"%d",&n)!=EOF)sum=sum+n;fprintf(fp," %d",sum);fclose(fp);return 0;
}

2.调试例子:1 2 3 4 5 6
3.结果如图:

4、拓展编程题
输出含for的行:将文本文件test.txt中所有包含字符串for行输出。
1.源程序:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 80
void Findfor(char *ch)
{int i=0;for(i=0;i<strlen(ch);i++){if(ch[i]=='f'&&ch[i+1]=='o'&&ch[i+2]=='r')printf("This row have for:\n%s\n",ch);}
}
int main()
{FILE *fp;char ch[N];fp=fopen("test.txt","r");while(!feof(fp)){fgets(ch,N,fp);Findfor(ch);}fclose(fp);return 0;
}

2.调试例子:
abcdforco
shduoas
bsadiasgfor
3.结果如图:

实验结果和心得就不写在上面啦,别老是偷懒自己也要做做哦,加油,我在未来等你!

C语言程序设计实验第三版:文件程序设计相关推荐

  1. C语言程序设计(第三版)何钦铭著 习题5-3

    C语言程序设计(第三版)何钦铭著 习题5-3 习题一览表 1. C语言程序设计(第三版)何钦铭著 习题2-1 2.C语言程序设计(第三版)何钦铭著 习题2-2 3.C语言程序设计(第三版)何钦铭著 习 ...

  2. C语言程序设计(第三版)何钦铭著 习题4-1

    C语言程序设计(第三版)何钦铭著 习题4-1 习题一览表 1. C语言程序设计(第三版)何钦铭著 习题2-1 2.C语言程序设计(第三版)何钦铭著 习题2-2 3.C语言程序设计(第三版)何钦铭著 习 ...

  3. C语言程序设计(第三版)何钦铭著 习题4-4

    C语言程序设计(第三版)何钦铭著 习题4-4 习题一览表 1. C语言程序设计(第三版)何钦铭著 习题2-1 2.C语言程序设计(第三版)何钦铭著 习题2-2 3.C语言程序设计(第三版)何钦铭著 习 ...

  4. C语言程序设计(第三版)何钦铭著 习题4-6

    C语言程序设计(第三版)何钦铭著 习题4-6 习题一览表 1. C语言程序设计(第三版)何钦铭著 习题2-1 2.C语言程序设计(第三版)何钦铭著 习题2-2 3.C语言程序设计(第三版)何钦铭著 习 ...

  5. C语言程序设计(第三版)何钦铭著 习题3-5

    C语言程序设计(第三版)何钦铭著 习题3-5 习题一览表 1. C语言程序设计(第三版)何钦铭著 习题2-1 2.C语言程序设计(第三版)何钦铭著 习题2-2 3.C语言程序设计(第三版)何钦铭著 习 ...

  6. 计算机分支结构语句的实验报告,c语言 实验报告三 分支结构程序设计

    c语言 实验报告三 分支结构程序设计 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 物光学院计算机类实验报告<C 程序设计& ...

  7. c语言输入r1 r2垫片的面积,C语言上机实验答案Word版

    <C语言上机实验答案Word版>由会员分享,可在线阅读,更多相关<C语言上机实验答案Word版(33页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ,希望对您有 ...

  8. c语言实验分支程序设计二,C语言程序实验报告分支结构的程序设计(0页).doc

    C语言程序实验报告分支结构的程序设计(0页) 数学与软件科学学院 实验报告 学期:11至12___ 第_1 学期 2011年10 月 17 日 课程名称:程序设计基础教程-C语言 专业:2010级5_ ...

  9. 【C++习题笔记】谭浩强C++程序设计(第三版)第七章

    本文是谭浩强老师c++程序设计(第三版)第七章的习题总结,主要涉及结构体的内容. 1. 定义一个结构体变量(包括年.月.日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天.注意闰年 ...

最新文章

  1. The import javax.servlet cannot be resolved
  2. Python零基础教程:函数和类内建魔法属性
  3. [转]Docker 大势已去,Podman 即将崛起
  4. mysql数据库支持emoji表情的详解
  5. 类与对象的关系 java 1615134802
  6. python代码加密cython_利用Cython加密python脚本
  7. Pycharm中设置py文件头部注释信息
  8. Django学习--form(表单)
  9. Rainmeter监控GPU
  10. linux卸载设备驱动命令,Linux驱动-注册和卸载设备函数
  11. 【_ 記 】SQL语句实现三目表达式
  12. 网页分享至Facebook,Twitter,LinkedIn,WhatsApp,邮箱总结
  13. oracle 报错904,EXP-00008: 遇到 ORACLE 错误 904
  14. 字符串按照ASCII排序
  15. leaked window产生的原因及解决方案
  16. Part Ⅵ Transportation 交通??
  17. Java解析网页中的超链接批量下载用
  18. 租用国内的云主机的话,阿里云和盛大云,哪个更好?
  19. arm芯片,远程空中升级程序技术方案
  20. 小程序瀑布流的实现三种方式

热门文章

  1. Cross-Attention in Coupled Unmixing Nets for Unsupervised Hyperspectral Super-Resolution
  2. MATLAB | 将图片序列转换为视频文件
  3. C#——System.Guid不是特征类,报错解决方法
  4. 记录用友T+接口对接的心酸历程
  5. python中型项目---Django框架---图书管理网站的制作-01
  6. python程序暂停和继续_如何“暂停”和“继续”下载工作?
  7. idea gwt 怎么编译_为GWT设置开发环境
  8. mfence, lfence, sfence什么作用?
  9. 物联网架构实例—Ubuntu 安装Redis
  10. xdoj 21期中——幸运数字